事件驱动编程

大多数基于窗口的程序,一个显著的特征是事件驱动。这意味着程序要响应不同的事件,如单机鼠标、按下键盘上的按键,或者重新调整窗口的大小。系统自动管理事件队列,该队列接收到已经发生的特定事件信息,并按照先来先服务的顺序处理这些信息。程序员将程序组织成回调函数的集合,这些回调函数一有事件发生就执行。当回调函数执行完后,应用程序从队列移走响应的消息,再从调用处恢复成等待状态。程序员必须在每个回调函数内部编写事件产生时将发生什么事件的代码,不需要编写什么时候调用回调函数的指令,调用回调函数是系统自动处理的。这一点对程序的编写者和代码的任何读者来说很重要。

因为存在的事件类型不多,所以系统对于每一种可能发生的事件类型都创建了一个回调函数。当系统将某个事件从队列中移走事,系统只执行与该事件类型相关的回调函数。这种结构更像是:“什么也不做,等待事件发生,事件发生后再做指定的事”。系统在重复的循环中耐心地等待,直到收到一个事件触发信号。

 

你可能感兴趣的:(C++,事件驱动)