CreateEvent
一、事件是很常用的多线程同步互斥机制
函数原型如下所示,一共四个参数:
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes, // SECURITY_ATTRIBUTES结构指针,可为NULL
BOOL bManualReset, // 手动/自动
// TRUE:表示手动,在WaitForSingleObject后必须手动调用ResetEvent清除信号
// FALSE:表示自动,在WaitForSingleObject后,系统自动清除事件信号
BOOL bInitialState, //初始状态,FALSE为无信号,TRUE为有信号
LPCTSTR lpName //事件的名称
);
二、下面是使用演示:
1、首先在要使用时间的类中声明这个事件的句柄,用来标识这个事件,如下所示:
2、声明好了句柄,就要调用CreateEvent()函数创建事件了,如下所示:
3、设置信号的初始状态,使用SetEvent()(激活状态)或者ResetEvent()(未激活状态),依据使用设置,这里是Set如下所示:
4、在函数中检测事件的状态,如下所示在循环中检测事件的状态,如果事件未被激活,循环将会被挂起在这里,不会往下执行,除非在别处调用了SetEvent()或者ResetEvent(),这里是事件被激活之后才会往下执行:
5、执行完成之后调用ResetEvent()将事件状态还原(如果创建事件的时候是手动设置的话)。
CreateEvent相关推荐
- CreateEvent的使用方法
CreateEvent的使用方法收藏 新一篇: PreCreateWindow的作用和用法 | 旧一篇: VC中_T()的作用 事件对象就像一个开关:它仅仅有两种状态---开和关.当一个事件处于&qu ...
- 线程中CreateEvent和SetEvent及WaitForSingleObject的用法
原文:线程中CreateEvent和SetEvent及WaitForSingleObject的用法
- CreateEvent创建事件对象
**usb.cpp** m_hReadEvent=CreateEvent(NULL,TRUE,TRUE,NULL);//初始为无信号状态 m_hWriteEvent=CreateEvent(NULL, ...
- CreateEvent(NULL,TRUE,FALSE,NULL);的解释
它用来创建或打开一个命名的或无名的事件对象 初始化为: m_hReadEvent=CreateEvent(NULL,TRUE,FALSE,NULL); 1.,确定返回的句柄是否可被子进程继承.如果lp ...
- html dom createevent,js 中 document.createEvent的用法
js 中 document.createEvent的用法 更新时间:2010年08月29日 23:22:02 作者: 用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象. ...
- CreateEvent的用法
事件对象就像一个开关:它只有两种状态---开和关.当一个事件处于"开"状态,我们称其为"有信号"否则称为"无信号".可以在一个线程的执行函数 ...
- js 中 document.createEvent的用法-转载
js 中 document.createEvent的用法 <a class="comment-mod" οnclick="alert('ss')" hre ...
- c++中CreateEvent函数解析(1)
函数原型: HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, // SDBOOL bManualReset, // reset t ...
- 事件内核对象 CreateEvent
事件内核对象是在线程同步时比较常用的内核对象. 一个事件内核对象的触发表示一个操作已经完成.有两种类型的事件内核对象:手动重置事件和自动重置事件. 当一个手动重置对象被触发的时候,正在等待该事件的所有 ...
- createEventObject 与 createEvent EDIT WATCH
jQuery中有很好用的trigger来触发事件,但总不能写什么都去引入jQuery吧 一个简单的需求,实现类似IE下的fireEvent效果<要兼容其它主流浏览器> 关于这二个方法,没记 ...
最新文章
- hibernate 一对多(one-to-many)双向关联
- 如何查看keepalived版本号_Linux下Keepalived 安装与配置
- iOS经典面试题之分析GCD的dispatch_group任务执行问题
- strstr和memcmp函数的实现
- SpringBoot_配置-@Conditional自动配置报告
- hmm 求隐藏序列_结巴分词3--基于汉字成词能力的HMM模型识别未登录词
- sql重复数据取日期小的_excel快速查询重复数据的3个小技巧
- Swift学习字符串、数组、字典
- 多播委托(multicast delegate)
- 每隔10秒执行一次_(立下flag)每日10道前端面试题12 关于BOM十问
- Firefox关闭最后一个标签页时不关闭Firefox的设置
- 【Github】nlp-journey: NLP相关代码、书目、论文、博文、算法、项目资源链接
- ctf是用Windows还是Linux,CTF中zip总结
- 【计算理论】计算理论总结 ( 上下文无关文法 ) ★★
- xlsxwriter php,xlsxwriter(PHP工作表插件)
- mcgs rtu方式通讯两台施耐德ATV312变频器示例 ,通讯实现触摸屏控制监控变频器,中间不需要plc
- 边境的悍匪—机器学习实战:第七章 集成学习和随机森林
- DEFCON 23|专门抓捕黑客的人
- SpringBoot整合——阿里云对象存储(OSS)
- Robyn MMM2.0 - Facebook Marketing Science(R)市场营销-广告投放