您的位置:首页 > 其它

CreateEvent 自动/手动重置的测试

2013-03-26 15:25 225 查看
{
HANDLE hEvent = CreateEvent(NULL,
FALSE, //automatically resets
TRUE, //flag for initial state
NULL);

WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的初始值是TRUE
SetEvent(hEvent); //设置事件
WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的SetEvent
WaitForSingleObject(hEvent, 2000); //此处会超时退出

CloseHandle(hEvent);
}

{
HANDLE hEvent = CreateEvent(NULL,
TRUE, //manual-reset
TRUE, //flag for initial state
NULL);

WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的初始值是TRUE
WaitForSingleObject(hEvent, -1); //此处正常退出,因为需要手动复位
ResetEvent(hEvent); //重置事件
WaitForSingleObject(hEvent, 2000); //此处会超时退出
SetEvent(hEvent);
WaitForSingleObject(hEvent, -1); //此处正常退出,因为前面的SetEvent

CloseHandle(hEvent);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: