1、static EventWaitHandle eHandle = new EventWaitHandle(true, EventResetMode.ManualReset);
当前状态下调用 eHandle.WaitOne(),不会导致阻塞, 需要调用Reset()阻塞,Set()放行。
WaitOne()->Run->Reset()->Stop->Set()->Run
2、static EventWaitHandle eHandle = new EventWaitHandle(false, EventResetMode.ManualReset);
当前状态下调用 eHandle.WaitOne(),需要先Set()放行,不然门一直是关闭的
WaitOne()->Stop->Set()->Run
3、static EventWaitHandle eHandle = new EventWaitHandle(true, EventResetMode.AutoReset);
当前状态下第一次调用WaitOne(),并不会阻塞,true表示放行的状态,但是因为是自动模式,走过门之后会自动把门带上,第二次调用WaitOne(),会阻塞住,如果是手动模式,不去ReSet()的话,不管怎么调用WaitOne()都会放行。
WaitOne()->Run->WaitOne()->Stop->Set->Run
4、static EventWaitHandle eHandle = new EventWaitHandle(false, EventResetMode.AutoReset);
WaitOne()->Stop->Set()->Run
自动模式下,如果在放行状态,调用一次WaitOne()后都会自动关门阻塞。