“机器睡眠”+ WaitForSingleObject +有限超时

奇怪的问题在这里 - 但:

如果我在超时20分钟的互斥体上使用WaitForSingleObject。 然后,机器在等待时进入睡眠模式(或休眠模式)。在12小时后唤醒 - 我将调用WaitForSingleObject超时? 或者计时器会在机器休眠时挂起?


根据https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx,WaitForSingleObject确实需要花费在低功耗状态的时间,但只能从Windows 8.所以在Windows 7上,它应该像上面描述的那样工作,但是在Windows 8和更高版本中,只有当系统在所要求的时间内主动运行时,调用才会超时。


仅在Windows 7上进行了5分钟超时和10分钟睡眠测试。 我正在等待无尽的线程。

惊喜 - WaitForSingleObject在我的机器被唤醒后超时。


摘自MSDN:

Windows XP,Windows Server 2003,Windows Vista,Windows 7,Windows Server 2008和Windows Server 2008 R2:dwMilliseconds值确实包括在低功耗状态下花费的时间。 例如,计算机睡着时,超时继续减少。

Windows 8,Windows Server 2012,Windows 8.1,Windows Server 2012 R2,Windows 10和Windows Server 2016:dwMilliseconds值包括在低功耗状态下花费的时间。 例如,计算机睡着时,超时不会继续倒计时。

链接地址: http://www.djcxy.com/p/10713.html

上一篇: "machine sleep" + WaitForSingleObject + finite timeout

下一篇: How do I check GPU usage of Android device?