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

时间:2015-08-06 11:27:46

标签: c# vb.net multithreading timer

我有一个Office应用程序的COM加载项,它使用

每30分钟在后台执行一次操作
System.Timers.Timer

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

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

1 个答案:

答案 0 :(得分:-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));
    }

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