事件物件 (同步處理)
事件物件是同步處理物件,其狀態可以使用SetEvent函式明確設定為已發出訊號。 以下是兩種類型的事件物件。
Object | 描述 |
---|---|
手動重設事件 | 事件物件,其狀態會維持訊號,直到它明確重設為 ResetEvent 函式未簽署為止。 發出訊號時,可以釋放任何數目的等候執行緒,或後續在其中一個 等候函式中指定相同事件物件的執行緒。 |
自動重設事件 | 在釋放單一等候執行緒之前,其狀態會保持訊號的事件物件,此時系統會自動將狀態設定為非簽署狀態。 如果沒有執行緒在等候,事件物件的狀態會維持已收到信號。 如果有多個執行緒正在等候,則會選取等候的執行緒。 請勿假設先入、先出 (FIFO) 順序。 核心模式 APC 等外來事件可以變更等候順序。 |
事件物件有助於將訊號傳送至執行緒,指出已發生特定事件。 例如,在重迭的輸入和輸出中,系統會在重迭的作業完成時,將指定的事件物件設定為訊號狀態。 單一線程可以在數個同時重迭的作業中指定不同的事件物件,然後使用其中一個多物件 等候函 式來等候任何一個事件物件的狀態收到訊號。
執行緒會使用CreateEvent 或 CreateEventEx函式來建立事件物件。 建立執行緒會指定物件的初始狀態,以及它是手動重設或自動重設事件物件。 建立執行緒也可以指定事件物件的名稱。 其他進程中的執行緒可以藉由在 OpenEvent 函式呼叫中指定其名稱,來開啟現有事件物件的控制碼。 如需 mutex、事件、旗號和計時器物件名稱的其他資訊,請參閱 進程同步處理。
相關主題