为什么

HANDLE mutexHandle = INVALID_HANDLE_VALUE;
WaitForSingleObject(mutexHandle, INFINITE);

阻止?它不返回错误消息。检查INVALID_HANDLE手柄将是愚蠢互斥如我需要互斥访问互斥处理...

顺便说一句:它与WAIT_FAILED返回如果手柄被关闭

有帮助吗?

解决方案

http://blogs.msdn.com/oldnewthing /archive/2004/03/02/82639.aspx

  

第四,必须特别小心与INVALID_HANDLE_VALUE值:巧合的是,该值INVALID_HANDLE_VALUE恰好是数值上等于由GetCurrentProcess()返回的pseudohandle。很多内核函数接受pseudohandles,所以如果你陷入困境时,不慎调用,也就是说,在一个失败的WaitForSingleObject手柄INVALID_HANDLE_VALUE,你实际上将结束等待自己的过程。这个等待会,当然,永远不会完成,因为一个进程退出时,所以你最终等待自己的信号。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top