定时器在待机模式下会发生什么?

我正在使用Timer from Timers命名空间。 当PC进入睡眠状态或hibernate状态时,计时器会发生什么?

我有计时器设置为6小时延迟。

在这些情况下会发生什么。

1)定时器从0小时开始,立即进入hibernate/hibernate状态。 然后PC在第5小时醒来。我的计时器会在接下来的1小时后或接下来的6小时后点火吗?

2)定时器从0小时开始,立即进入hibernate/hibernate状态。 然后PC在第7小时醒来。一旦PC唤醒,我的计时器是否会立即点火,或者它会“错过”一次并在接下来的5个小时内点火? 从PC唤醒时间或之前的“错过”事件开始计算直到下一个事件?

好。 我问我的朋友,这是他的结果:

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(string[] args) { timer = new System.Timers.Timer(); timer.Interval = 60 * 1000; timer.AutoReset = true; timer.Elapsed += timer_Elapsed; timer.Enabled = true; Console.WriteLine(String.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(String.Format("{0}:{1}:{2} : Timer fired", DateTime.Now.ToLocalTime().Hour, DateTime.Now.ToLocalTime().Minute, DateTime.Now.ToLocalTime().Second)); } } } 

所以简而言之。 睡觉和醒来计时器检查后是否遗漏了任何事件。 如果错过了一个,它将从0开始计数到下一个事件。