Qu’advient-il de la timer en mode veille?

J’utilise Timer from Timers namespace. Qu’advient-il de la timer lorsque le PC se met en veille ou en veille prolongée?

J’ai la timer réglée à 6 heures de retard.

Que se passera-t-il dans ces situations?

1) La timer commence à l’heure 0 et se met immédiatement en veille / hibernation. Ensuite, l’ordinateur se réveille à l’heure 5. Ma timer sera-t-elle déclenchée au bout d’une heure ou de six heures?

2) La timer commence à l’heure 0 et se met immédiatement en veille / hibernation. Ensuite, PC se réveille à 7 heures. Mon chronomètre se déclenchera-t-il dès que PC se réveillera ou “manquera-t-il” une fois et se déclenchera-t-il dans les 5 prochaines heures? Commencera-t-il à compter jusqu’au prochain événement à partir de l’heure du réveil du PC ou à partir de l’événement précédent “manqué”?

D’accord. J’ai demandé à mon ami et voici ses résultats:

23:21:32 : Timer started 23:21:35 : PC Goes Sleep 23:22:50 : PC Wakes 23:22:50 : Timer fired 23:23:50 : Timer fired using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace Test { class Program { static System.Timers.Timer timer; static void Main(ssortingng[] args) { timer = new System.Timers.Timer(); timer.Interval = 60 * 1000; timer.AutoReset = true; timer.Elapsed += timer_Elapsed; timer.Enabled = true; Console.WriteLine(Ssortingng.Format("{0}:{1}:{2} : Timer started", DateTime.Now.ToLocalTime().Hour, DateTime.Now.ToLocalTime().Minute, DateTime.Now.ToLocalTime().Second)); timer.Start(); Thread.Sleep(Timeout.Infinite); } static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Console.WriteLine(Ssortingng.Format("{0}:{1}:{2} : Timer fired", DateTime.Now.ToLocalTime().Hour, DateTime.Now.ToLocalTime().Minute, DateTime.Now.ToLocalTime().Second)); } } } 

Donc en bref. Après avoir dormi et réveillé, le chronomètre vérifie s’il a raté un événement. S’il en manquait un, il commencerait à compter jusqu’à l’événement suivant à partir de 0.