在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区别相关推荐

  1. AutoResetEvent与ManualResetEvent区别

    在.Net多线程编程中,AutoResetEvent和ManualResetEvent这两个类经常用到, 他们的用法很类似,但也有区别.Set方法将信号置为发送状态,Reset方法将信号置为不发送状态 ...

  2. AutoResetEvent和ManualResetEvent

    首先说说线程的终止状态和非终止状态.AutoResetEvent和ManualResetEvent的构造函数中,都有bool变量来指明线程的终止状态和非终止状态.true表示终止状态,false表示非 ...

  3. 多线程间通信之AutoResetEvent和ManualResetEvent的原理分析

    AutoResetEvent 允许线程通过发信号互相通信. 通常,当线程需要独占访问资源时使用该类. 线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号. 如果 AutoRe ...

  4. c# AutoResetEvent和ManualResetEvent

    网上有很多AutoResetEvent和ManualResetEvent的详细介绍,在这里不做过多详细的解释,写下自己的一点心得留作备忘. AutoResetEvent和ManualResetEven ...

  5. AutoResetEvent 与 ManualResetEvent

    闲来无事,把AutoResetEvent 与 ManualResetEvent 两个Event进行了一下实践Demo,毕竟以后会遇到多线程的开发问题,现在有时间把它们好好的先试验一下,这样印象会更深刻 ...

  6. C#笔记20:多线程之线程同步中的信号量AutoResetEvent和ManualResetEvent

    C#笔记20:多线程之线程同步中的信号量AutoResetEvent和ManualResetEvent 本章概要: 1:终止状态和非终止状态 2:AutoResetEvent和ManualResetE ...

  7. 对AutoResetEvent和ManualResetEvent的理解

    一.作用 AutoResetEvent和ManualResetEvent可用于控制线程暂停或继续,拥有重要的三个方法:WaitOne.Set和Reset. 这三个方法的官方定义并不好理解,什么终止.非 ...

  8. 个人对AutoResetEvent和ManualResetEvent的理解

    仅个人见解,不对之处请指正,谢谢. 一.作用 AutoResetEvent和ManualResetEvent可用于控制线程暂停或继续,拥有重要的三个方法:WaitOne.Set和Reset. 这三个方 ...

  9. 关于AutoResetEvent 和ManualResetEvent

    在公司的代码里面看到这两个类的使用了,第一次去msdn上的时候,看的一头雾水(关键是没有找对方法) http://www.cnblogs.com/qingyun163/archive/2013/01/ ...

最新文章

  1. 重磅!2020 中国高校毕业生月薪排名:清华第一,24所高校过万
  2. HTML5 geolocation和BaiduMap、BingMap、GoogleMap
  3. 学习官方示例 - System.TClass
  4. HTML5 学习之地理定位
  5. c++ 回调函数_Java中的回调机制,这篇给你整的明明白白的
  6. linux命令查看cpu架构,Linux下如何查看CPU信息
  7. 开工的欲望 | AI Studio上线新功能,用你的模型生成在线预测服务
  8. matlab 边缘光滑,如何使用matlab来平滑图片的边缘
  9. leetcode155|最小栈(java)题解
  10. 什么是光纤收发器?光纤收发器作用是什么?
  11. 认识 sun.misc.Unsafe
  12. 【Oracle】Oracle通过表名查询触发器
  13. python 日志输出变量_Python日志输出
  14. 系统集成项目管理工程师(中级)常用英语汇总
  15. 提供AlTi5B催化富铝合金水解产氢材料/Ru/Ce(OH)CO3纳米材料/Al-Ga-Mg-Sn多元铝合金
  16. alot英文怎么读_alot...of是什么意思
  17. 斜杠【/】 与 反斜杠【\】
  18. 计算机人才供需状况和就业形势分析,计算机科学与技术就业形势分析
  19. TIDB 性能测试(TIUP-TPCC)
  20. Shor’s algorithm

热门文章

  1. 如何在线免费PDF转换PPT
  2. 毕业论文公式居中标号靠右
  3. linux修改主机名命令
  4. JAVA线上问题排查及常用命令
  5. 解析两周期货投机过程中的心理端倪
  6. sql入门(3)------SQLServer3
  7. IPv6-计算机网络
  8. 支付宝 微信后台不死的黑科技
  9. xxd航模电调电路图
  10. 54个提高PHP程序运行效率的方法(转载)