CreateEvent/OpenEvent/SetEvent/ResetEvent/WaitForSingleObject 相关用法说明

来源:互联网 发布:人口数据 编辑:程序博客网 时间:2024/06/05 08:05

CreateEvent 创建一个事件

 

view plaincopy to clipboardprint?
  1. HANDLE WINAPI CreateEvent(     
  2.   __in_opt  LPSECURITY_ATTRIBUTES lpEventAttributes,  //如果为空handle不能被子进程继承   
  3.   __in BOOL bManualReset,       //如果为true,需要手动ResetEvent     
  4.   __in BOOL bInitialState,      //初始状态     
  5.   __in_opt  LPCTSTR lpName      //事件的名称,可以为空,如果跨进程则为Global//xxxEvent形式     
  6.  );  

 

 

  

OpenEvent打开一个已存在的事件,其目的是获取句柄

 

view plaincopy to clipboardprint?
  1. HANDLE WINAPI OpenEvent(   
  2.   __in  DWORD dwDesiredAccess,         //一般用EVENT_ALL_ACCESS      
  3.   __in  BOOL bInheritHandle,   
  4.   __in  LPCTSTR lpName   
  5. );  

 

 

SetEvent 设置事件为true

view plaincopy to clipboardprint?
  1. BOOL WINAPI SetEvent(   
  2.   __in  HANDLE hEvent   
  3. );  

 

 

ResetEvent设置事件为false,如果CreateEvent 的bManualReset 为FALSE,则不需要调用

view plaincopy to clipboardprint?
  1. BOOL WINAPI ResetEvent(   
  2.   __in  HANDLE hEvent   
  3. );  

 

 

WaitForSingleObject 等待一个对象
 

view plaincopy to clipboardprint?
  1. DWORD WINAPI WaitForSingleObject(   
  2.   __in  HANDLE hHandle,          //对象的句柄   
  3.   __in  DWORD dwMilliseconds     //等待时间,INFINITE(0xFFFFFFFF)为无限等待   
  4. );