Eri*_*fer 7 windows winapi multithreading synchronization waitforsingleobject
为什么
HANDLE mutexHandle = INVALID_HANDLE_VALUE;
WaitForSingleObject(mutexHandle, INFINITE);
Run Code Online (Sandbox Code Playgroud)
块?它不会返回错误消息.检查句柄对于INVALID_HANDLE
互斥锁来说是愚蠢的,因为我需要一个互斥锁来访问互斥锁句柄...
BTW:WAIT_FAILED
如果把手关闭,它确实会返回.
Cat*_*lus 18
来自http://blogs.msdn.com/oldnewthing/archive/2004/03/02/82639.aspx:
第四,你必须特别小心这个
INVALID_HANDLE_VALUE
值:巧合的是,这个值INVALID_HANDLE_VALUE
恰好在数值上等于返回的伪句柄GetCurrentProcess()
.许多内核函数接受伪句柄,所以如果你陷入困境并意外地调用,例如,WaitForSingleObject
在失败的INVALID_HANDLE_VALUE
句柄上,你实际上最终会等待自己的进程.当然,这种等待永远不会完成,因为进程在退出时会发出信号,因此您最终会等待自己.