AutoResetEvent与ManualResetEvent区别
来源:互联网 发布:linux vi 显示状态 编辑:程序博客网 时间:2024/04/28 18:24
在.Net多线程编程中,AutoResetEvent和ManualResetEvent这两个类经常用到, 他们的用法很类似,但也有区别。Set方法将信号置为发送状态,Reset方法将信号置为不发送状态,WaitOne等待信号的发送。可以通过构造函数的参数值来决定其初始状态,若为true则非阻塞状态,为false为阻塞状态。如果某个线程调用WaitOne方法,则当信号处于发送状态时,该线程会得到信号, 继续向下执行。其区别就在调用后,AutoResetEvent.WaitOne()每次只允许一个线程进入,当某个线程得到信号后,AutoResetEvent会自动又将信号置为不发送状态,则其他调用WaitOne的线程只有继续等待.也就是说,AutoResetEvent一次只唤醒一个线程;而ManualResetEvent则可以唤醒多个线程,因为当某个线程调用了ManualResetEvent.Set()方法后,其他调用WaitOne的线程获得信号得以继续执行,而ManualResetEvent不会自动将信号置为不发送。也就是说,除非手工调用了ManualResetEvent.Reset()方法,则ManualResetEvent将一直保持有信号状态,ManualResetEvent也就可以同时唤醒多个线程继续执行。
- AutoResetEvent 与 ManualResetEvent区别
- AutoResetEvent与ManualResetEvent区别
- AutoResetEvent与ManualResetEvent区别
- AutoResetEvent与ManualResetEvent区别
- AutoResetEvent与ManualResetEvent区别
- AutoResetEvent与ManualResetEvent区别
- AutoResetEvent+与+ManualResetEvent区别
- AutoResetEvent 与 ManualResetEvent区别
- AutoResetEvent与ManualResetEvent区别
- AutoResetEvent与ManualResetEvent的区别
- AutoResetEvent与ManualResetEvent的区别
- AutoResetEvent和ManualResetEvent区别
- ManualResetEvent和AutoResetEvent 区别
- AutoResetEvent 与 ManualResetEvent
- AutoResetEvent与ManualResetEvent
- AutoResetEvent 与 ManualResetEvent
- AutoResetEvent 与 ManualResetEvent
- ManualResetEvent 与 AutoResetEvent
- 关于网闸原理的研究
- 游戏相关
- 有一种生活叫震撼!!![27P]
- “反百度联盟”引发的思考(waterworms.net)
- 网站ICP备案指导 - 备案常见问题解答
- AutoResetEvent与ManualResetEvent区别
- 白领一天生活
- 白领一天生活
- 白领一天生活
- 水晶报表
- 蜗牛 (洪战辉)
- Google的秘密入口
- 白领一天生活
- AutoResetEvent详解