一、事件是很常用的多线程同步互斥机制

函数原型如下所示,一共四个参数:

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

  1. CreateEvent的使用方法

    CreateEvent的使用方法收藏 新一篇: PreCreateWindow的作用和用法 | 旧一篇: VC中_T()的作用 事件对象就像一个开关:它仅仅有两种状态---开和关.当一个事件处于&qu ...

  2. 线程中CreateEvent和SetEvent及WaitForSingleObject的用法

    原文:线程中CreateEvent和SetEvent及WaitForSingleObject的用法

  3. CreateEvent创建事件对象

    **usb.cpp** m_hReadEvent=CreateEvent(NULL,TRUE,TRUE,NULL);//初始为无信号状态 m_hWriteEvent=CreateEvent(NULL, ...

  4. CreateEvent(NULL,TRUE,FALSE,NULL);的解释

    它用来创建或打开一个命名的或无名的事件对象 初始化为: m_hReadEvent=CreateEvent(NULL,TRUE,FALSE,NULL); 1.,确定返回的句柄是否可被子进程继承.如果lp ...

  5. html dom createevent,js 中 document.createEvent的用法

    js 中 document.createEvent的用法 更新时间:2010年08月29日 23:22:02   作者: 用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象. ...

  6. CreateEvent的用法

    事件对象就像一个开关:它只有两种状态---开和关.当一个事件处于"开"状态,我们称其为"有信号"否则称为"无信号".可以在一个线程的执行函数 ...

  7. js 中 document.createEvent的用法-转载

    js 中 document.createEvent的用法 <a class="comment-mod" οnclick="alert('ss')" hre ...

  8. c++中CreateEvent函数解析(1)

    函数原型: HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, // SDBOOL bManualReset, // reset t ...

  9. 事件内核对象 CreateEvent

    事件内核对象是在线程同步时比较常用的内核对象. 一个事件内核对象的触发表示一个操作已经完成.有两种类型的事件内核对象:手动重置事件和自动重置事件. 当一个手动重置对象被触发的时候,正在等待该事件的所有 ...

  10. createEventObject 与 createEvent EDIT WATCH

    jQuery中有很好用的trigger来触发事件,但总不能写什么都去引入jQuery吧 一个简单的需求,实现类似IE下的fireEvent效果<要兼容其它主流浏览器> 关于这二个方法,没记 ...

最新文章

  1. hibernate 一对多(one-to-many)双向关联
  2. 如何查看keepalived版本号_Linux下Keepalived 安装与配置
  3. iOS经典面试题之分析GCD的dispatch_group任务执行问题
  4. strstr和memcmp函数的实现
  5. SpringBoot_配置-@Conditional自动配置报告
  6. hmm 求隐藏序列_结巴分词3--基于汉字成词能力的HMM模型识别未登录词
  7. sql重复数据取日期小的_excel快速查询重复数据的3个小技巧
  8. Swift学习字符串、数组、字典
  9. 多播委托(multicast delegate)
  10. 每隔10秒执行一次_(立下flag)每日10道前端面试题12 关于BOM十问
  11. Firefox关闭最后一个标签页时不关闭Firefox的设置
  12. 【Github】nlp-journey: NLP相关代码、书目、论文、博文、算法、项目资源链接
  13. ctf是用Windows还是Linux,CTF中zip总结
  14. 【计算理论】计算理论总结 ( 上下文无关文法 ) ★★
  15. xlsxwriter php,xlsxwriter(PHP工作表插件)
  16. mcgs rtu方式通讯两台施耐德ATV312变频器示例 ,通讯实现触摸屏控制监控变频器,中间不需要plc
  17. 边境的悍匪—机器学习实战:第七章 集成学习和随机森林
  18. DEFCON 23|专门抓捕黑客的人
  19. SpringBoot整合——阿里云对象存储(OSS)
  20. Robyn MMM2.0 - Facebook Marketing Science(R)市场营销-广告投放

热门文章

  1. (信贷风控七)申请评分卡模型Python实现(图文+代码实现)
  2. 蓝鹊生物国内首款新冠mRNA嵌合体疫苗获批临床
  3. 中国植入式起搏器市场趋势报告、技术动态创新及市场预测
  4. 苹果一体机卸载原装OSX系统,只安装win10系统操作过程2019-11
  5. BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)
  6. Redis-5-实际应用
  7. 区块链签章 + 云签约 让合同的法律效力无懈可击
  8. 黄金价格走势k线图如何看?
  9. YAPI -- API管理平台
  10. 实现python调用Matlab的.m文件