2011-07-27 —— 杂记 —— SetEvent 和 PulseEvent 的区别
来源:互联网 发布:遮瑕 知乎 编辑:程序博客网 时间:2024/05/22 05:18
系统核心对象中的Event事件对象,在进程、线程间同步的时候是比较常用,发现它有两个出发函数,一个是SetEvent,还有一个PulseEvent,两者的区别是:
SetEvent为设置事件对象为有信号状态;而PulseEvent也是将指定的事件设为有信号状态,不同的是如果是一个人工重设事件,正在等候事件的、被挂起的所有线程都会进入活动状态,函数随后将事件设回,并返回;如果是一个自动重设事件,则正在等候事件的、被挂起的单个线程会进入活动状态,事件随后设回无信号,并且函数返回。
也就是说在自动重置模式下PulseEvent和SetEvent的作用没有什么区别,但在手动模式下PulseEvent就有明显的不同,可以比较容易的控制程序是单步走,还是连续走。如果让循环按要求执行一次就用PulseEvent,如果想让循环连续不停的运转就用SetEvent,在要求停止的地方发个ResetEvent就OK了。
-------PulseEvent相当于在自动重置的模式下SetEvent的效果,也就是说它是单次运行,运行后重置!- 2011-07-27 —— 杂记 —— SetEvent 和 PulseEvent 的区别
- SetEvent与PulseEvent的区别
- SetEvent与PulseEvent的区别
- SetEvent与PulseEvent的区别
- SetEvent与PulseEvent的区别
- SetEvent与PulseEvent的区别
- SetEvent与PulseEvent区别
- SetEvent、PulseEvent与WaitForSingleObject
- iOS杂记——#import和@class的区别
- Storm杂记 — Field Grouping和Shuffle Grouping的区别
- Windows API——CreateEvent和SetEvent函数
- 2011-08-31 —— 杂记 —— 关于Debug和Release之本质区别的讨论
- 杂记——src与href区别
- Python —— 杂记
- Qt—细节杂记
- Java—杂记
- 书情杂记——名校与非名校区别
- 杂记——喵哥吃鱼的问题
- C# 浅拷贝与深拷贝区别
- Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid
- JSP+Servlet登录页面制作
- 看懂SQL Server 查询计划[转]
- SQL Server 中 RAISERROR 的用法
- 2011-07-27 —— 杂记 —— SetEvent 和 PulseEvent 的区别
- __asm____volatile__GCC的内嵌汇编语法AT&T汇编语言语法
- android软键盘的使用
- SQL Server 2005 学习笔记之触发器简介[转]
- 数据库范式那些事[转]
- 自定义控件之Dialog
- 数据库相关知识整理
- 使用PowerDesigner 设计SQL Server 数据库
- 2011-07-27 —— 杂记 —— 包含到 SOURCE 中的文件路径查找