好的。 我問我的朋友,這是他resutls:
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開始計數直到下一個事件。
這是您可以輕鬆測試的東西。嘗試它併發布答案。 – 2013-02-11 22:07:23
當你嘗試5分鐘時,結果如何?或者你還沒有嘗試過呢? – I4V 2013-02-11 22:08:07
@HansPassant我在提問時告訴我現在不能測試它。 – Hooch 2013-02-11 22:08:50