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

本文关键字:什么 待机 模式 定时器 | 更新日期: 2023-09-27 17:58:40

我正在使用Timers命名空间中的Timer。当电脑进入睡眠或休眠状态时,计时器会发生什么变化?

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

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

1) 计时器从0小时开始,并立即进入睡眠/休眠状态。然后电脑在5点醒来。我的计时器会在接下来的1小时后还是在接下来的6小时后启动?

2) 计时器从0小时开始,并立即进入睡眠/休眠状态。然后电脑在7点醒来。我的计时器会在电脑醒来后立即启动吗?还是会"错过"一次,然后在接下来的5小时内启动?它会从电脑唤醒时开始计数到下一个事件,还是从上一个"错过"事件开始计数?

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

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

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开始的下一个事件。