函数原型:

HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, // SD
  BOOL bManualReset,                       // reset type
  BOOL bInitialState,                      // initial state
  LPCTSTR lpName                           // object name
);

lpEventAttributes:
指向SECURITY_ATTRIBUTES结构体,此结构体决定函数的返回句柄是否可以让子进程继承。如果这个参数为NULL,这个句柄是不能继承的。一般情况下,这个参数设置为NULL。
bManualReset:
指定将创建的EVENT是自动复位还是手动复位。如果为TRUE,需要用ResetEvent(HANDLE)函数手动复位状态为无信号,即一旦改EVENT被设置成有信号,则它会一直等到ResetEvent调用时才为无信号状态。如果为FALSE,当一个有信号的等待线程被释放后,系统会自动复位状态为无信号状态。
bInitialState:指定事件对象的初始状态。如果为TRUE,初始状态为有信号,否则为无信号。lpName:  事件对象的名称,以字符串表示。名称的长度受MAX_PATH的限制,名称是大小写敏感的。如果lpName匹配一个存在的命名的事件对象,函数将请求EVENT_ALL_ACCESS来访问存在的对象。在这种情况下,bManualResetbInitialState 被忽略,因为这两个参数已经被存在的事件设置。如果lpEventAttributes参数不为NULL,这个参数可以决定是否句柄被继承,但是它的安全描述(security-descriptor)成员被忽略。如果lpName 为NULL,创建一个没有名称的事件。如果lpName 匹配一个存在的semaphore, mutex, waitable timer, job或者file-mapping对象的名称,函数调用失败,GetLastError函数返回ERROR_INVALID_HANDLE。由于这些对象共享相同的命名空间,才导致这种情况的发生。

返回值:    函数返回句柄,该句柄具有EVENT_ALL_ACCESS权限去访问新的事件对象,同时它可以在任何需要事件对象句柄的函数中使用。    调用过程中的任何线程,都可以在一个等待函数中指定事件对象句柄。当指定的对象的状态为有信号时,单对象等待函数(例如WaitForSingleObject)返回。对于多对象等待函数(例如WaitForMultipleObjects),可以指定为任意或所有指定的对象被置为有信号状态。当等待函数返回时,等待线程将被释放去继续它的执行。   事件对象的初始状态由bInitialState参数指定,用SetEvent函数可以设置对象为有信号状态,用ResetEvent函数可以设置对象为无信号状态。   当一个手动复原的事件对象的状态被置为有信号状态时,该对象将一直保持有信号状态,直至明确调用ResetEvent函数将其置为无符号状态。当事件对象被设置为有信号状态时,任何数量的等待线程或者随后等待的线程都会被释放。    当一个自动复原事件对象的状态被设置为有信号状态时,该对象一直保持有信号状态,直至一个单等待线程被释放;系统然后会自动重置对象到无信号状态。    多个进程可持有同一个事件对象的多个句柄,可以通过使用此对象来实现进程间的同步。下面的对象共享机制是可行的:  ·在CreateEvent函数中,lpEventAttributes参数指定句柄可被继承时,通过CreateProcess函数创建的子进程继承的事件对象句柄。  ·一个进程可以在DuplicateHandle函数中指定事件对象句柄,从而获得一个复制的句柄,此句柄可以被其它进程使用。    ·一个进程可以在OpenEvent或CreateEvent函数中指定一个名字,从而获得一个有名的事件对象句柄。(在调用OpenEvent或CreateEvent函数时,一个进程可以指定事件对象的名字。)  使用CloseHandle函数关闭句柄。当进程终止时,系统将自动关闭句柄。事件对象会被销毁,当最后一个句柄被关闭。
												

c++中CreateEvent函数解析(2)相关推荐

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

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

  2. oracle中next_day()函数解析

    oracle中next_day()函数解析 Sql代码 当前系统时间的下一星期一的时间select   next_day(sysdate,1) from dual NEXT_DAY(date,char ...

  3. python中append函数解析_对python中的pop函数和append函数详解

    对python中的pop函数和append函数详解 pop()函数 1.描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值. 语法 pop()方法语法: list. ...

  4. 【ROS学习】- tf学习 - tf中重要函数解析 (陆续更新....)

    文章目录 一.函数waitForTransform().lookupTransform() 具体解释 二.函数 tf::StampedTransform().sendTransform() 具体解释 ...

  5. c++中CreateEvent函数

    http://blog.csdn.net/chenyujing1234/article/details/8572921 函数原型: [cpp]  view plain copy HANDLE Crea ...

  6. 【晕头晕脑的Python】Python中Reshape函数解析

    Reshape函数解析 Reshape()作用: Reshape()实例说明: 一维reshape() 为 二维 二维数组 reshape 切片,逆置 三维Reshape情况 Reshape()作用: ...

  7. java中main函数解析

    作者:xwdreamer 出处:http://www.cnblogs.com/xwdreamer 欢迎任何形式的转载,但请务必注明出处. 从写java至今,写的最多的可能就是主函数 public st ...

  8. java中的de是什么_【转】java中main函数解析

    源地址:http://www.cnblogs.com/xwdreamer/archive/2012/04/09/2438845.html 从写java至今,写的最多的可能就是主函数 public st ...

  9. java中的主函数_java中main函数解析

    从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...

最新文章

  1. 逻辑电路 - 与非门Nand Gate
  2. 函数调用oracle,oracle 函数调用
  3. 跟着书本重学CSS(1)
  4. 8.10-11 mount、umount
  5. Python的三种格式化输出
  6. Linux系统断电后起不来,centos/linux 断电后,开机光标闪现不能开启,重新引导
  7. Linux基础笔记1
  8. Python算法(含源代码下载)
  9. Integer的缓存机制
  10. 微信小程序订票选座PHP后台网站MySQL数据库和无前端小程序版本两个程序
  11. Windows与Linux之间的文件自动同步
  12. 微信小程序WebSocket相关问题说明
  13. java vcf文件增量写入,用snpEFF对vcf格式的突变数据进行注释
  14. AOD实践,modis数据下载,modis数据处理,
  15. 笔记本独显和集显linux,笔记本电脑独显不见了的解决方法介绍
  16. 关闭键盘按键声音和使用筛选键
  17. numpy的array_equal函数
  18. Latex 页眉页脚在一章的第1页之后不显示及位置混乱的问题解决
  19. Vision Transformer综述翻译
  20. hdwiki下model目录功能

热门文章

  1. 趋势科技发布《2007年病毒威胁报告暨2008年预测》
  2. u-checkbox
  3. Winform实现光盘刻录功能
  4. “笨办法”学Python 3 ——练习 15 阅读文件
  5. 《人间草木》汪曾祺——读后感
  6. linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法
  7. DeviceNet概要
  8. [ArcGIS Server] 错误:上传服务定义失败
  9. 【K210】人脸识别 KPU-kpu.run_yolo2()函数说明
  10. bootstrap table合并单元格mergeCell