2012-05-09 13 views
6

extraña pregunta aquí - pero:"máquina del sueño" + + WaitForSingleObject tiempo de espera finita

Si uso WaitForSingleObject en un mutex con un tiempo de espera de 20 minutos. Luego, la máquina ingresa al modo de suspensión (o hibernación) mientras espera ... Al despertar 12 horas después, ¿mi llamada a WaitForSingleObject se suspenderá? ¿o suspenderá el temporizador con la máquina en reposo?

+0

quizás este artículo ayude http://www.flounder.com/time.htm – Andrew

Respuesta

1

Acabo de probar en Windows 7 con 5 minutos de tiempo de espera y 10 minutos de sueño. Estaba esperando un hilo interminable.

Sorpresa - WaitForSingleObject se agotó el tiempo de espera después de que mi máquina se despertó.

+0

No, esto no es una sorpresa. Este comportamiento es exactamente lo que dice MSDN. – Elmue

0

De acuerdo con https://msdn.microsoft.com/en-us/library/windows/desktop/ms687032(v=vs.85).aspx, WaitForSingleObject toma en cuenta el tiempo invertido en estados de baja energía, pero solo a partir de Windows 8. Por lo tanto, en Windows 7 debe comportarse como se describe anteriormente, pero en Windows 8 y posteriores solo cuando el sistema se ha estado ejecutando activamente durante la cantidad de tiempo solicitada.

+0

Parece que tienes problemas con el inglés. MSDN dice exactamente lo CONTRARIO: Windows 8 y 10: "El valor de dwMilliseconds no incluye el tiempo que se pasa en estados de bajo consumo de energía. Por ejemplo, el tiempo de espera no continúa la cuenta atrás mientras la computadora está dormida". – Elmue