为什么
HANDLE mutexHandle = INVALID_HANDLE_VALUE; WaitForSingleObject(mutexHandle, INFINITE);
街区?它不会返回错误消息。检查手柄 INVALID_HANDLE 对于互斥体来说是愚蠢的,因为我需要一个互斥体来访问互斥体句柄…
INVALID_HANDLE
顺便说一句:它是用 WAIT_FAILED 如果手柄关闭。
WAIT_FAILED
从 http://blogs.msdn.com/oldnewthing/archive/2004/03/02/82639.aspx :
第四,你必须特别小心 INVALID_HANDLE_VALUE 价值:巧合的是,价值 无效的句柄值 恰好在数字上等于 GetCurrentProcess() .许多内核函数都接受伪句柄,所以如果您搞乱了并意外调用,比如, WaitForSingleObject 失败论 无效的句柄值 处理,你最终会等待你自己的过程。当然,这个等待永远不会完成,因为一个进程退出时会发出信号,所以您最终会等待自己。
INVALID_HANDLE_VALUE
无效的句柄值
GetCurrentProcess()
WaitForSingleObject