2012-05-09 3 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