如果我这样做:
private static System.Threading.AutoResetEvent event_2 = new System.Threading.AutoResetEvent(false);
然后在主线程中我做:
event_2.Set();
它将状态从 false
更改为 true
?
如果是这样,基本上可以:
AutoResetEventState = !AutoResetEventState
?
最佳答案
它将状态设置为允许线程在 Wait()
上继续执行的状态。
如果有任何线程已经在等待,那么一个线程将被允许继续进行并且状态将立即设置为未设置,因此所有其他线程将继续阻塞。
如果当前没有线程在等待,那么第一个等待的线程将立即被允许通过,但后续线程将被阻塞。
其他 EventWaitHandle
派生类共享相同的通用机制,但允许线程进行时的自动重置与 ManualResetEvent
不同,因此得名。
如果 true
传递给构造函数,则初始状态发出信号(允许线程前进),如果传递 false
则不发出信号,因此传递 true
与您在构造后立即调用 Set()
相同,而传递 false
则与您调用 Reset 相同()
。
关于c# - AutoResetEvent.Set() 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33037396/