我正在使用 Timers 命名空间中的 Timer。
当 PC 进入睡眠或休眠状态时,计时器会发生什么情况?
我把计时器设置为延迟 6 小时。
在这些情况下会发生什么。
1) 定时器从 0 点开始并立即进入睡眠/休眠状态。然后 PC 在 5 小时唤醒。我的计时器会在接下来的 1 小时后还是在接下来的 6 小时后触发?
2) 定时器从 0 点开始并立即进入睡眠/休眠状态。然后 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 开始计数,直到下一个事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)