對於事件的使用總是用過就忘,不是非常熟練,簡單按如下來記憶吧。
不是正規介紹,完整的介紹還是好好看看書或別人比較專業的。。
事件的使用分為三步:
1.宣告委託,定義函式形式。
2.宣告事件,用所定義的函式形式。
3.定義觸發事件的函式。
如下:
public delegate void myeventhandler();
public event myeventhandler valuechanged;
private void onvaluechanged()
}
其中第一步的宣告委託也可以省略,直接使用已經有的型別:
public delegate void eventhandler(object sender, eventargs e)
即直接變成:
public event eventhandler valuechanged;
private void onvaluechanged(object sender, eventargs e)
}
關於那兩個引數的介紹就不多說了。
使用事件的好處就是可以對符合該函式形式的函式直接關聯起來,從而進行一系列的呼叫。
採用+=操作,這樣事件被觸發時就可以呼叫這一系列的函式。
這樣做的好處在於(我的感覺),在設計類的時候,這一事件發生時需要觸發的事情還不一定,或者要控制其他的類,可以把這個介面留出來,要幹什麼你後來+=上去就可以了。
事件的命名一般採用pascal命名方式,採用動詞命名,需要合理選擇時態,比如closing和closed,乙個是正在關的過程中發生什麼事,另乙個是關了之後發生什麼事。
事件的觸發時刻,即on***x是什麼時候呼叫,還是要安排好的,不要以為叫這個名字就一定會在某事發生的時候呼叫,哪有這麼神奇的事情。。。
事件CEvent的使用
cevent類的乙個物件,表示乙個 事件 乙個允許乙個事件發生時執行緒通知另乙個執行緒的同步物件。在乙個執行緒需要了解何時執行任務時,事件是十分有用的。例如,拷貝資料到資料文件時,執行緒應被通知何時資料是可用的。當新資料可用時,通過運用cevent物件來通知拷貝執行緒,執行緒才可能盡快地執行。例如在...
event 事件的使用
event用於兩個執行緒間的協作,比如乙個執行緒得到了資料發訊號給另乙個執行緒讓它來處理 多執行緒裡的event from threading import thread,event import time,random event event def light print light is li...
事件的基本使用
宣告乙個事件很簡單,只需在宣告乙個委託物件時加上event關鍵字就行。如下 public delegate void pricechangedhandler decimal oldprice,decimal newprice public class iphone6 事件的使用和委託完全一樣,只是多...