C 學習筆記之 事件 Event

2022-09-14 17:36:18 字數 1612 閱讀 1694

發布器(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 ...