EventWaitHandle、AutoResetEvent、CountdownEvent 和 ManualResetEvent
事件等候控制代碼可允許執行緒同步處理活動,其透過的方式是向彼此發出信號,並互相等候對方的信號。 這些同步處理事件是以 Win32 等候控制代碼為根據,且可以分為兩種類型:當收到信號時會自動重設的事件,以及以手動方式重設的事件。
事件等候控制代碼在與 Monitor 類別相同的許多同步處理案例中,會相當實用。 事件等候控制代碼通常要比 Monitor.Wait 和 Monitor.Pulse 方法更容易使用,且對於信號也提供了更大的控制權。 具名的事件等候控制代碼也可用來同步處理跨應用程式定義域和處理序的活動,而監視器則是在應用程式定義域的本機。
在本節中
EventWaitHandle
EventWaitHandle 類別可表示自動或手動重設事件,且可以是本機事件或具名系統事件。AutoResetEvent
AutoResetEvent 類別衍生自 EventWaitHandle,且表示可自動重設的本機事件。ManualResetEvent 和 ManualResetEventSlim
ManualResetEvent 類別衍生自 EventWaitHandle,且表示必須手動重設的本機事件。 ManualResetEventSlim 屬於輕量類別,在相同處理序內可以較快速用於事件的版本。CountdownEvent
CountdownEvent 類別提供簡化的方式利用使用等候控制代碼的程式碼,實作分岔/聯結平行處理原則模式。
相關章節
- 等候控制代碼
WaitHandle 類別是 EventWaitHandle、Semaphore 和 Mutex 類別的基底類別。 它包含了在處理所有型別的等候控制代碼時很有用處的靜態方法,例如 SignalAndWait 和 WaitAll。