想问一下closehandle的问题
HANDLE hand = CreateEvent(NULL,TRUE,FALSE,NULL);
if (CloseHandle(hand))
{
AfxMessageBox("1");
}
if (CloseHandle(hand))
{
AfxMessageBox("2");
}
if (CloseHandle(hand))
{
AfxMessageBox("3");
}
前面两次成功,第三次失败。为什么可以closehandle两次?第一次closehandle后,应该hand计数递减为0,第二次closehandle就应该失败啊,但结果第二次还是成功,第三次才失败。
[解决办法]
#include <Windows.h>
#include <iostream>
int main()
{
HANDLE hand = CreateEvent(NULL,TRUE,FALSE,NULL);
if (CloseHandle(hand))
{
std::cout<<"1"<<std::endl;
}
if (CloseHandle(hand))
{
std::cout<<"2"<<std::endl;
}
if (CloseHandle(hand))
{
std::cout<<"3"<<std::endl;
}
system("pause");
return 0;
}