回答

16

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

第四,你必須要特別小心與INVALID_HANDLE_VALUE值:巧合的是,價值INVALID_HANDLE_VALUE恰好是數值上等於由GetCurrentProcess()返回pseudohandle。很多內核函數接受pseudohandles,所以如果你陷入困境時,不慎打電話,說,WaitForSingleObject上失敗INVALID_HANDLE_VALUE手柄,你會真正結束等待自己的過程。當然,這種等待將永遠不會完成,因爲一個進程在退出時發出信號,所以你最終等待着你自己。

+1

我想我現在覺得噁心......所以我需要保持周圍的舊手柄和信號的有效性有一個單獨的標誌。爲什麼不文檔這麼說... – EricSchaefer 2009-09-24 13:38:13

+3

我包'WaitForSingleObject'並返回'WAIT_FAILED'爲'INVALID_HANDLE_VALUE',它可能會需要更少的編碼。 – 2009-09-24 13:44:14

相關問題