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