ManualResetEvent的理解
首先弄清楚, ManualResetEvent 是WaitEventHandler(等待事件句柄)的一个子类。
ManualResetEvent 允许线程通过发信号互相通信。通常,此通信涉及一个线程在其他线程进行之前必须完成的任务。
可以通过将布尔值传递给构造函数来控制 ManualResetEvent 的初始状态,如果初始状态处于终止状态,为 true;否则为 false。
关于Set()/ReSet()/WaitOne()
ReSet():将 ManualResetEvent 事件设置为非终止状态,即:保持等待。导致其他线程阻塞。或这样理解:reset()方法就是为waitone()准备的,reset()相当于开始初始化为阻止状态(false)。
Set():将 ManualResetEvent 事件设置为终止状态,即:不再保持等待。发出让等待线程可以继续进行的信号。
WaitOne():阻止当前线程,等待接收信号。当某个线程执行Set命令的时候,WaitOne接收这个信号,继续执行。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步