CreateEvent,OpenEvent成功后 是否需要::CloseHandle(xxx); 避免句柄泄漏

时间:2023-03-08 22:55:36
CreateEvent,OpenEvent成功后 是否需要::CloseHandle(xxx); 避免句柄泄漏

bool bExist = false;

HANDLE hHandle = ::CreateEvent(NULL,  FALSE,  FALSE,  L"Global\\xxxxx_name");
if  (hHandle && ERROR_ALREADY_EXISTS  ==  GetLastError())
{
        bExist = true;
        ::OutputDebugString(L"event exist \n");

::CloseHandle(hHandle );                    //成功创建已存在的,不关闭会句柄泄漏

}

HANDLE oHandle = ::OpenEvent(EVENT_ALL_ACCESS,  TRUE,  L"Global\\xxxxx_name");
if (oHandle)
{
        ::CloseHandle(oHandle);                
 
//成功打开已存在的,不关闭会句柄泄漏
}

类似OpenFile,CreateFile打开创建一个已存在的文件,还是要关闭句柄。 结论经过代码测试。