标签:
windows事件与消息:
事件由用户(操作电脑的人)触发且只能由用户触发,
操作系统能够感觉到由用户触发的事件,并将此事件转换为一个(特定的)消息发送到程序的消息队列中。
概念:
事件是客观存在,而消息往往是人为安排的。
event and event handlers:
event handlers:event发生后,会通知event handlers,它们做相应的回调。
各种框架下事件的实现:
.net框架:
事件机制是通过代理类来实现的。当一个事件被触发时,由该事件的代理来通知(调用)处理该事件的相应方法。
C#:
BOOST:
[boost.signal]
概念:信号(signal)(事件)与插槽(slot)(事件handler),当对应的信号被发出时,相关联的插槽们即被执行。
#include <boost/signal.hpp> #include <iostream> void func1() { std::cout << "Hello" << std::flush; } void func2() { std::cout << ", world!" << std::endl; } int main() { boost::signal<void ()> s; s.connect(1, func2); s.connect(0, func1); s(); }
c++:
The event keyword declares an event, which is a notification to registered subscribers (event handlers) that something of interest has occurred.
事件关键字声明了一个事件,这个事件是一个对event handler们的通知,然后某些回调会发生。
from MSDN:
For example, clicking on a button or a menu item causes a message to be sent that this happened (message contains an ID). Then there can be a message handler that catches the message and does something or there may not be and the message is just ignored.
标签:
原文地址:http://www.cnblogs.com/yiii/p/5097365.html