2012-05-09 46 views
6
這裏

奇怪的問題 - 但是:「機器休眠」 + WaitForSingleObject的+有限超時

如果我對一個互斥體使用WaitForSingleObject的有20分鐘的超時。然後,機器在等待時進入睡眠模式(或休眠模式)。在12小時後喚醒 - 我將調用WaitForSingleObject超時?或者計時器會在機器休眠時掛起?

+0

也許這篇文章將有助於http://www.flounder.com/time.htm – Andrew

回答

1

剛剛在Windows 7上進行了5分鐘超時和10分鐘睡眠測試。我正在等待無盡的線程。

驚喜 - WaitForSingleObject在我的機器被喚醒後超時。

+0

不,這並不令人意外。這種行爲正是MSDN所說的。 – Elmue

0

根據https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx,WaitForSingleObject確實需要花費時間在低功耗狀態下進行,但只能從Windows 8開始。所以在Windows 7上它應該像上面描述的那樣工作,但在Windows 8和更高版本中,調用將超時只有當系統已經運行了所需的時間。

+0

看來你有英文問題。 MSDN正好說明了OPPOSITE:Windows 8和10:「dwMilliseconds值不包括在低功耗狀態下花費的時間,例如,計算機睡着時超時不會繼續計數。 – Elmue