事件 Event 消息 Message

windows事件與消息:ios

  事件由用戶(操做電腦的人)觸發且只能由用戶觸發,c++

  操做系統可以感受到由用戶觸發的事件,並將此事件轉換爲一個(特定的)消息發送到程序的消息隊列中。windows

概念:  app

  事件是客觀存在,而消息每每是人爲安排的。框架

event and event handlers:this

  event handlers:event發生後,會通知event handlers,它們作相應的回調。spa

各類框架下事件的實現:操作系統

.net框架: .net

  事件機制是經過代理類來實現的。當一個事件被觸發時,由該事件的代理來通知(調用)處理該事件的相應方法。
代理

C#:

 (1)將實際應用中需經過事件機制解決的問題對象註冊到相應的事件處理程序上,表示從此當該對象的狀態發生變化時,該對象有權使用它註冊的事件處理程序。
 (2)當事件發生時,觸發事件的對象就會調用該對象全部已註冊的事件處理程序。

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++:

event (C++ Component Extensions)

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. 

相關文章
相關標籤/搜索