C++实操 - Event概念介绍和定义一个Event类

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

关于事件

事件驱动系统通常用于有一些需要由程序处理的异步外部活动;例如,用户按下鼠标上的一个按钮。一个事件驱动的系统通常运行一个事件循环,持续等待此类活动,例如来自设备的输入或内部警报。当这些活动之一发生时,它收集关于该事件的数据,并将该事件分配给处理该事件的程序。

一个程序可以选择忽略事件,而且可能有一些库将一个事件分配给多个处理程序,这些处理程序可能被编程为监听一个特定的事件。与事件相关的数据至少要指定它是什么类型的事件,但也可能包括其他信息,如它发生的时间、谁或什么导致了它的发生,以及由事件源提供给处理程序的关于如何处理该事件的额外数据。

事件通常用于用户界面,外部世界的动作(鼠标点击、窗口大小调整、键盘按压、来自其他程序的信息等)被程序作为一系列事件来处理。为许多窗口环境编写的程序主要是由事件处理程序组成的。

事件也可以在指令集级别使用,它们是对中断的补充。与中断相比,事件通常是同步处理的:程序明确地等待事件的服务(通常是通过调用指令来分配下一个事件),而中断可以在任何时候要求服务。 

事件处理 Event handler

在计算机编程中,事件处理程序是一个回调子程序,处理程序中收到的输入(在Java和JavaScript中称为监听器)。每个事件都是来自底层框架的一段应用级信息,通常是GUI工具包。GUI事件包括按键、鼠标移动、选择动作和定时器。在一个较低的层次上,事件可以代表读取文件或网络流的新数据的可用性。事件处理程序是事件驱动编程的一个核心概念。

事件是由框架在解释低级别的输入的基础上创建的,这些输入可能是低级别的事件本身。例如,鼠标移动和点击被解释为菜单选择。事件最初起源于操作系统层面的行动,如硬件设备产生的中断、软件中断指令或轮询的状态变化。在这个层面上,中断处理程序和信号处理程序相当于事件处理程序。

创建的事件首先由框架内的事件调度器处理。它通常管理事件和事件处理程序之间的关联,并可能把事件或事件

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值