【C#基础】轻松理解AutoResetEvent 和 ManualResetEvent-CSDN博客
初始化实例参数:true表示有信号线程可以断续,false表示无信号线程需等待
set():设置为有信号状态true
reset():设置为无信号状态false
AutoResetEvent和ManunalResetEvent区别在于WaitOne()
AutoResetEvent在WaitOne()收到信号执行后自动调用reset()转换为无信号状态false
ManunalResetEvent在WaitOne()收到信号执行后状态不改变,一直会有信号,直到手动调用reset()转换为无信号状态false
意味着多线程状态下,给一次信号AutoResetEvent的WaitOne()只有一个线程能收到信号,而ManunalResetEvent的所有线程都能收到信号。
状态值只有一个,在同一点调用1次set()跟调用10次set()效果一样,比如:AutoResetEvent先调用10次set(),后续AutoResetEvent调用1次WaitOne()信号就没有了,变成false。