ManualResetEvent的理解

        首先弄清楚, ManualResetEvent 是WaitEventHandler(等待事件句柄)的一个子类。
        ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。
       可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态,如果初始状态处于终止状态,为 true;否则为 false。
       关于Set()/ReSet()/WaitOne()
ReSet():将 ManualResetEvent 事件设置为非终止状态,即:保持等待。导致其他线程阻塞。或这样理解:reset()方法就是为waitone()准备的,reset()相当于开始初始化为阻止状态(false)。

Set():将 ManualResetEvent 事件设置为终止状态,即:不再保持等待。发出让等待线程可以继续进行的信号。

WaitOne():阻止当前线程,等待接收信号。当某个线程执行Set命令的时候,WaitOne接收这个信号,继续执行。

原文地址:https://www.cnblogs.com/huacw/p/2065467.html