1、定义对象句柄
HANDLE m_hEvent;
2、创建对象
m_hEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
//NULL,子进程不能继承
//FALSE,当一个等待线程被释放以后,系统将会自动将事件状态复原为无信号状态。否则用ResetEvent()手动复原
//FALSE,初始化状态非
//NULL,无名事件
3、等待事件
WaitForSingleObject(pDraw->m_hEvent, INFINITE)//永久等待直到事件发生
WaitForSingleObject(pDraw->m_hEvent, 0)//查询
WaitForSingleObject(pDraw->m_hEvent, time_ms)//事件发生或时间结束,返回WAIT_TIMEOUT表示超时
4、设置事件
SetEvent(m_hEvent);
5、复原事件
ResetEvent(m_hEvent);
示例:
1、在.h文件中声明线程函数和事件对象
private:
HANDLE m_hEvent;
static DWORD __stdcall function1(LPVOID lpParam