关于事件
事件驱动系统通常用于有一些需要由程序处理的异步外部活动;例如,用户按下鼠标上的一个按钮。一个事件驱动的系统通常运行一个事件循环,持续等待此类活动,例如来自设备的输入或内部警报。当这些活动之一发生时,它收集关于该事件的数据,并将该事件分配给处理该事件的程序。
一个程序可以选择忽略事件,而且可能有一些库将一个事件分配给多个处理程序,这些处理程序可能被编程为监听一个特定的事件。与事件相关的数据至少要指定它是什么类型的事件,但也可能包括其他信息,如它发生的时间、谁或什么导致了它的发生,以及由事件源提供给处理程序的关于如何处理该事件的额外数据。
事件通常用于用户界面,外部世界的动作(鼠标点击、窗口大小调整、键盘按压、来自其他程序的信息等)被程序作为一系列事件来处理。为许多窗口环境编写的程序主要是由事件处理程序组成的。
事件也可以在指令集级别使用,它们是对中断的补充。与中断相比,事件通常是同步处理的:程序明确地等待事件的服务(通常是通过调用指令来分配下一个事件),而中断可以在任何时候要求服务。
事件处理 Event handler
在计算机编程中,事件处理程序是一个回调子程序,处理程序中收到的输入(在Java和JavaScript中称为监听器)。每个事件都是来自底层框架的一段应用级信息,通常是GUI工具包。GUI事件包括按键、鼠标移动、选择动作和定时器。在一个较低的层次上,事件可以代表读取文件或网络流的新数据的可用性。事件处理程序是事件驱动编程的一个核心概念。
事件是由框架在解释低级别的输入的基础上创建的,这些输入可能是低级别的事件本身。例如,鼠标移动和点击被解释为菜单选择。事件最初起源于操作系统层面的行动,如硬件设备产生的中断、软件中断指令或轮询的状态变化。在这个层面上,中断处理程序和信号处理程序相当于事件处理程序。
创建的事件首先由框架内的事件调度器处理。它通常管理事件和事件处理程序之间的关联,并可能把事件或事件

本文介绍了事件驱动编程中的Event类,探讨了如何用整数标识事件,如何通过静态变量统计事件生产和消费,以及如何通过typeid判断事件类型。重点讲解了Event类的定义、相等性判断和实例应用,适合理解事件处理和GUI编程。
最低0.47元/天 解锁文章
796

被折叠的 条评论
为什么被折叠?



