PC从睡眠中唤醒时,计时器会发生什么?

Off*_*Dev 9 c# vb.net multithreading timer

我有一个用于Office应用程序的COM加载项,它使用一个每30分钟在后台执行一次操作

System.Timers.Timer
Run Code Online (Sandbox Code Playgroud)

此后台操作通过Internet连接执行用户身份验证,并且我有一些用户的报告,当他们的PC从睡眠状态唤醒时,身份验证失败.我自己无法重现这种行为,所以我的理论是,当PC唤醒时,后台操作在恢复与Internet的连接之前执行(可能是当PC进入睡眠状态时,Windows关闭了连接).

一般情况下,如果一台PC在一段时间不活动后进入睡眠状态,当PC唤醒时会发生什么Timers?例如,Timer睡眠时暂停,然后在PC唤醒时以设定的间隔恢复(例如,如果TimerPC进入睡眠状态的时间间隔为10分钟,则Timer.Elapsed事件在PC唤醒后20分钟才会激活)?Timer.Elapsed事件是否排队,以便在PC唤醒时立即触发?Windows会Timer在PC进入睡眠状态时停止吗?或者,Timer在PC休眠时继续运行,但由于Internet连接中断(可能),后台操作无法执行用户身份验证?

小智 -2

    static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        Console.WriteLine(String.Format("{0}:{1}:{2} : Timer fired",
            DateTime.Now.ToLocalTime().Hour,
            "Execute:" + DateTime.Now.ToLocalTime().Minute,
            DateTime.Now.ToLocalTime().Second));
    }
Run Code Online (Sandbox Code Playgroud)

当触发此事件时,您将知道开始时间,并且每当您需要执行时间时,只需将其存储在管理执行时间的位置即可。如果您的电脑进入睡眠或休眠状态并在执行计时之前重新启动您的电脑,那么您可以检查上次执行时间并可以执行操作。