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

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

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()将事件状态还原(如果创建事件的时候是手动设置的话)。

C++事件的建立和使用SetEvent,ResetEvent相关推荐

  1. C++事件SetEvent,ResetEvent的使用

    一.概念 创建事件: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SECURITY_ATTRIBUTES结构指针,可 ...

  2. CreateEvent() SetEvent() ResetEvent() 进程互斥

    首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方面. CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象. EVENT有两种状态 ...

  3. CreateEvent/SetEvent/ResetEvent和WaitForSingleObject

    1.CreateEvent 是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面. 函功能描述:创建或打开一个命名的或无名的事件对象. HANDLE m_hExit; m_hExit= ...

  4. 【CreateEvent与SetEvent/ResetEvent】

    CreateEvent:创建Window事件,创建或打开一个命名的或无名的事件对象. 创建的事件有两种状态:发送信号和不发送信号: SetEvent:将事件设置为发送信号 ResetEvent:将事件 ...

  5. SetEvent/ResetEvent

    该博客旨在分享IT技术心得和实际工作中遇到问题的解决方法,以下是新浪博客地址http://blog.sina.com.cn/qianyumolu,则为分享经济.行业趋势.心灵文章等,有兴趣的朋友可以踩 ...

  6. c++ 线程中CreateEvent SetEvent/ResetEvent WaitForSingleObject的使用

    HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes,   // 安全属性 BOOL bManualReset,   // 复位方式, ...

  7. CreateEvent SetEvent ResetEvent

    CreatEvent():创建一个事件对象  SetEvent():把指定事件对象的状态设置为发信号状态 ResetEvent():把指定事件对象的状态设置为不发信号状态 函数CreateEvent创 ...

  8. SetEvent()和ResetEvent()

    一.综述: SetEvent()使当前事件对象处于有信号状态,当前的这个线程可以继续执行. ResetEvent()是当前事件对象处于无信号状态,当前的线程处于睡眠状态,不能执行. 设置为TRUE就是 ...

  9. c++中SetEvent和ResetEvent的使用

    关于事件 事件(Event)是WIN32提供的最灵活的线程间同步方式,事件可以处于激发状态(signaled or true)或未激发状态(unsignal or false).根据状态变迁方式的不同 ...

最新文章

  1. pgrouting进行路径规划之入门二
  2. C语言二进制标识符,C语言入门基础大全,自学C语言必备知识!
  3. H264分辨率解码概述
  4. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task2:数据扩增方法
  5. python开发基础教程
  6. Linux之dd命令详解
  7. AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。
  8. java keygenerator_Java密码学KeyGenerator类
  9. firewalld的配置和使用
  10. php 获取src,html-使用PHP获取img src
  11. 相似文档查找算法之 simHash
  12. android高效视频压缩代码,Android视频压缩的示例代码
  13. 微信⼩程序——wxParse使⽤⽅法
  14. sd卡驱动分析之core
  15. 普加甘特图数据结构解析
  16. Redis底层数据结构-SDS
  17. Win7电脑无法进入睡眠模式怎么办
  18. Unity 2D动画控制器详解
  19. php gd imageaffine
  20. python 64式: 第24式、python项目国际化翻译实战

热门文章

  1. RazorSQL 配置Oracle错误及实例
  2. 品牌对比 | 尼康 VS 佳能
  3. web系统多语言切换(中文,英文,日文)
  4. 15w+字的计算机网络知识核心总结!再也不怕面试官问我网络知识了,飘了!
  5. 服务器40t硬盘,未来40T机械硬盘你会选?持续读写媲美MAT
  6. [USACO09FEB]股票市场Stock Market
  7. 怎样设置电脑宽带连接无线路由器设置路由器连接服务器,腾达无线路由器如何设置宽带连接(PPPOE)上网...
  8. 〖Python语法进阶篇⑧〗- 异步关键字与gevent包
  9. python开发跟淘宝有关联微_python - 爬取某淘宝店铺所有宝贝遇到的问题?
  10. 2019FME博客大赛——浅谈FME在国土空间规划技术服务中的实践和应用