* 终止状态: WaitOne()允许线程访问下边的语句
* 非终止状态: WaitOne()阻塞线程,不允许线程访问下边的语句
*
* Set()方法: 把非终止状态改为终止状态用, WaitOne()允许线程访问下边的语句
* Reset()方法: 把终止状态改为非终止状态用, WaitOne()阻塞线程,不允许线程访问下边的语句
*
* //true: 设置终止状态。首次不会被WaitOne()阻塞,下次执行WaitOne()才会被阻塞
* //false:设置非终止状态。遇到WaitOne()立即阻塞所在的一个或多个线程
*
* AutoResetEvent are_thread = new AutoResetEvent(true);
* //1.AutoResetEvent,调用一次Set()只能继续一个阻塞线程
* //2.AutoResetEvent,调用Set()后自动Reset()
*
* ManualResetEvent mre_thread = new ManualResetEvent(false);
* //1.ManualResetEvent,调用一次Set()允许继续全部阻塞线程,这是和AutoResetEvent的区别
* //2.ManualResetEvent,调用 Reset(),将信号设置为非终止状态,在非终止状态线程中调用WaitOne()阻塞线程。 |