1、頭文件
#include <windows.h>
2、使用
//a、聲明一個句柄
HANDLE m_Event;
//b、初始化並重置
m_Event= CreateEvent(NULL, TRUE, FALSE, NULL);
ResetEvent(m_Event);
//c、使用
void Function1()
{
ResetEvent(m_Event);
//執行到此處,等待500毫秒直到超時或 SetEvent(m_Event);被調用
//如果500毫秒內SetEvent(m_Event);被調用,500毫秒後才返回到此處運行
int res = WaitForSingleObject(m_Event, 500);
switch (res)
{
case WAIT_OBJECT_0:
// m_Event所代表的進程在500毫秒內結束
break;
case WAIT_TIMEOUT:
// 等待時間超過5秒
break;
case WAIT_FAILED:
// 函數調用失敗,比如傳遞了一個無效的句柄
break;
}
ResetEvent(m_Event);//重置
}
void Function2()
{
SetEvent(m_Event);
....//這段代碼根據等待時間,可能只執行一部分
}
參考:https://blog.csdn.net/fuyuehua22/article/details/45058399