2012-05-09 11 views
6

Garip burada soru - ama:"makine uyku" + WaitForSingleObject + sonlu timeout

Ben 20 dakikalık zaman aşımı ile bir mutex WaitForSingleObject kullanın. Daha sonra makine beklerken uyku moduna girer (veya hazırda bekletir). 12 saat sonra uyandığında WaitForSingleObject zaman aşımına uğrayacak mıyım? veya zamanlayıcı makine uyku ile askıya alacak mı?

+0

belki bu makalede yardımcı olacak http://www.flounder.com/time.htm – Andrew

cevap

1

Sadece Windows 7 üzerinde 5 dakika zaman aşımı ve 10 dakika uyku ile test edilmiştir. Sonsuz iplik için bekliyordum. Makinem uyanıldıktan sonra Sürpriz - WaitForSingleObject süresinin dolması zaman aşımına uğradı.

+0

Hayır, bu bir sürpriz değil. Bu davranış, MSDN'in tam olarak söylediği şeydir. – Elmue

0

https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx10'a göre, WaitForSingleObject, düşük güç durumlarında harcanan süreyi dikkate alır, ancak yalnızca Windows 8'den başlayarak. Bu nedenle, Windows 7'de yukarıda açıklandığı gibi davranmalıdır, ancak Windows 8 ve sonraki sürümlerde çağrı zaman aşımına uğrayacaktır. Sadece sistem istenen süre boyunca aktif olarak çalıştığında.

+0

İngilizce ile ilgili sorunlarınız var gibi görünüyor. MSDN tam olarak OPPOSITE diyor: Windows 8 ve 10: "dwMilliseconds değeri düşük güç durumlarında harcanan süreyi içermez. Örneğin, bilgisayar uykudayken zaman aşımı geri saymaz." – Elmue