Estoy usando System.Timers.Timer en mi aplicación WPF. Quiero entender cómo se comporta Timer, después de que la computadora está hibernada, y dormir. Tengo algunos problemas extraños con mi aplicación, después de que la computadora se reanude de hibernar.¿Cómo se comporta System.Timers.Timer en la aplicación WPF, después de Hibernate y Sleep?
¿Cómo debo manejar los temporizadores y cómo se comportan cuando la computadora está en modo de hibernación/suspensión?
Tengo un temporizador de medianoche que debería funcionar cada medianoche para restablecer los valores predeterminados en la IU.
Aquí está el código que crea el temporizador:
private void ResetMidnightTimer()
{
// kill the old timer
DisposeMidnightTimer();
_midnightTimer = new Timer();
// scheduling the timer to elapse 1 minute after midnight
_midnightTimer.Interval = (DateTime.Today.AddDays(1).AddMinutes(1) - DateTime.Now).TotalMilliseconds;
_midnightTimer.Elapsed += (_, __) => UpdateRecommendedCollectingTime();
_midnightTimer.Enabled = true;
_midnightTimer.Start();
}
En contructor de la página de interfaz de usuario, que llamo el método que llama ResestMidnightTimer() y crea el temporizador de facto. Después de eso, el cronómetro solo espera la noche.
Cuando llega la noche (en realidad es la 12:01 AM), el temporizador funciona, restablece los valores predeterminados como se esperaba y luego descarta el temporizador existente. Finalmente, crea un nuevo temporizador de medianoche para el día siguiente. Pero si trato de hibernar la computadora durante ese día, el temporizador de medianoche no funcionará y no restablecerá los valores predeterminados.
¿Es porque mientras hiberna, simplemente pospone el manejo del evento por la misma cantidad de tiempo que estaba hibernado?
¿Cuáles son los problemas que está viendo (solo curiosidad)? – M4N
@ M4N He editado la pregunta. – User1234