發布器(publisher) 是乙個包含事件和委託定義的物件。事件和委託之間的聯絡也定義在這個物件中。發布器(publisher)類的物件呼叫這個事件,並通知其他的物件。
訂閱器(subscriber) 是乙個接受事件並提供事件處理程式的物件。在發布器(publisher)類中的委託呼叫訂閱器(subscriber)類中的方法(事件處理程式)。
事件處理程式(event handler)由訂閱者註冊到事件的方法,在發布者觸發事件時執行。
觸發(raise)事件 呼叫(invoke)或者觸發(fire)事件的術語。當事件觸發時,所有註冊到它的方法都會依次呼叫。
宣告事件的委託型別
public delegate void boilerloghandler(string status);
宣告事件本身
// 基於上面的委託定義事件
public event boilerloghandler boilereventlog;
例子:
熱水器類
public delegate void watchdogdelegate();//委託型別宣告
/// /// 熱水器類water heater.
///
public class waterheater
", temperature);
}watchdogdelegateevent();
}}
警報器類
public class annunciator
}
顯示器類
public class display
}
//建立物件
waterheater waterheater = new waterheater();
display display = new display();
annunciator annunciator = new annunciator();
//新增方法
waterheater.watchdogdelegateevent += display.show;
waterheater.watchdogdelegateevent += annunciator.alert;
waterheater.heatupwater();
結果:
temperature:13
temperature:23
temperature:33
temperature:43
temperature:53
temperature:63
temperature:73
temperature:83
temperature:93
temperature:103
it is over 95°
移除事件 -=,新增事件 +=
public event eventhandler countedadozen
remove
}
Lite OS學習之事件EVENT
1.lite os的事件event,就是乙個任務向另外乙個任務通知事件的,不能資料傳輸。看下有的函式,實際比較複雜 2.具體還是看程式設計,先全域性結構體整個事件變數 事件控制結構體 event cb s example event 等待的事件型別 define event wait 0x00000...
Windows執行緒同步之事件 Event
設定為有訊號狀態setevent 設定為無訊號狀態resetevent 傳送訊號脈衝pulseevent 開啟已存在的命名物件openevent 關閉事件物件closeevent 等待訊號為有訊號或超時waitforsingleobject 建立或開啟事件物件createevent event是wi...
WebRTC原始碼分析之事件 Event
event原始碼分析 小結event類實現了事件的等待和觸發,通過介面 wait 函式可以實現執行緒的阻塞,而 set 函式可以啟用阻塞的執行緒。event類在webrtc的很多位置都有使用,理解了event類才能更好的閱讀其他webrtc原始碼。event使用示例 工程示例工程 提取碼 cenz ...