WaitHandle 中 set() reSet() waione关系

 private static ManualResetEvent mre = new ManualResetEvent(false);

main(){

  Thread t = new Thread(ThreadProc);
                t.Name = "Thread_1" ;
                t.Start();

}

ManualResetEvent   对象控制的是mre 这个对象 调用了set()  reSet()   waitone的线程。如果还有一个mre2这个不会相互干扰。

当子线程   Thread_1  调用  waione()   那么这个线程将会暂停    直到 mre对象在其他线程中被调用Set()。的时候后才会继续。

set()方法的意思是好了我给mre一个信号  所有被mre这只为waione阻塞暂停的  线程   重新开始运行。


reSet() 的意思是  调用了set()的mre已经把信号置为了可运行了,所以子线程调用waitone的时候会发现  已经被set信号了,所以会继续运行,但是调用了reSet()后,这个信号再次被初始化,也就是  子线程调用waitone的时候会再次需要等等mre的信号。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值