AutoResetEvent 与 ManualResetEvent区别
来源:互联网 发布:2016国产同性恋网络剧 编辑:程序博客网 时间:2024/06/11 01:01
在C#多线程编程中,这两个类几乎是不可或缺的,他们的用法/声明都很类似,那么区别在哪里了?
Set方法将信号置为发送状态 Reset方法将信号置为不发送状态 WaitOne等待信号的发送
其实,从名字就可以看出一点端倪 ,一个手动,一个自动,这个手动和自动实际指的是在Reset方法的处理上,如下面例子
public AutoResetEvent autoevent=new AutoResetEvent(true);
public ManualResetEvent manualevent=new ManualResetEvent(true);
默认信号都处于发送状态,
autoevent.WaitOne();
manualevent.WaitOne();
如果 某个线程调用上面该方法,则当信号处于发送状态时,该线程会得到信号,得以继续执行
差别就在调用后,autoevent.WaitOne()每次只允许一个线程进入,当某个线程得到信号(也就是有其他线程调用
了autoevent.Set()方法后)后,autoevent会自动又将信号置为不发送状态,则其他调用WaitOne的线程只有继续等待.也就是说,autoevent一次只唤醒一个线程
而manualevent则可以唤醒多个线程,因为当某个线程调用了set方法后,其他调用waitone的线程获得信号得以继续执行,而manualevent不会自动将信号置为不发送.也就是说,除非手工调用了manualevent.Reset().方法,则
manualevent将一直保持有信号状态,manualevent也就可以同时唤醒多个线程继续执行
- 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
- Ant介绍以及基本使用指南
- 中国十大名茶
- WEB下的整体测试
- 多表连接的SQL写法(SqlServer、Oracle)
- Struts的文件上传
- AutoResetEvent 与 ManualResetEvent区别
- 在struts里的实现dtree通用树型结构
- 管理的最高境界不是完美
- 不使用VS.NET集成开发环境,调用微软的WebService注册服务
- 开发还在继续
- Photoshop 制作水晶按钮
- 第一次写文章
- Visual FoxPro9.0构建管理系统图解
- 验证用户