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。