-
事件對象
鎖定
- 中文名
- 事件對象
- 外文名
- event object
- 性 質
- 內核對象
- 方 法
- 有名的或匿名的事件對象
事件對象事件對象簡介
由上面所述,可見事件對象可分為兩種,一種是人工重置的,另一種是自動重置的。當人工重置的事件得到通知時,等待該事件的所有線程均變為可調度線程。而當一個自動事件得到通知時,等待該事件的所有線程中只有一個線程變為可調度線程。
事件對象方法
,可以調用Windows API中的CreateEvent。它可以創建一個有名的或匿名的事件對象,函數原型如下HANDLE CreateEvent( LPSECURITY_ATTRIBUTESlpEventAttributes,
BOOLbManualReset,
BOOLbInitialState,
LPCTSTR lpName
);
第一參數lpEventAttributes是一個指向SECURITY_ATTRIBUTES結構指針,由它決定該函數返回的句柄是否能夠被子進程繼承,如果為NULL,則不能被繼承。通常指定為NULL(即默認的安全機制)。
第二參數bManualReset,若指定為TRUE,則創建一個人工重置的事件對象,此時可以利用函數
BOOL ResetEvent(HANDLE hEvent)人工重置其狀態為無信號的;若指定為FALSE,系統將創建一個自動重置對象,系統將自動將其狀態置為無信號的。
第三參數 bInitialState,若為TRUE則初始化創建的事件對象為有信號的(signaled),否則將創建的事件對象初始化為無信號的(nonsignaled)。
第四參數 lpName, 若指定為NULL,則創建一個匿名的事件對象。
返回值,如果函數成功,將返回一個該函數創建的事件對象的句柄。如果創建的事件對象是有名的,並且在調用該函數前,已經有一個同名的事件對象創建了,那麼該函數將返回一個指向已存在的事件對象的句柄,並且調用GetLastError(void)函數時,將返回ERROR_ALREADY_EXISTS;如果函數調用失敗,那麼它將返回NULL。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:15次歷史版本
- 最近更新: 君伟junwei521