C# System.Timers.Timer定時器
阿新 • • 發佈:2021-01-02
System.Timers.Timer的定時器每次觸發時,觸發事件會排隊到執行緒池佇列然後由排程程式安排可用的工作執行緒來執行
示例:
1 static void Main() 2 { 3 TimerTest(); 4 5 Console.Read(); 6 } 7 8 #region Timer測試 9 public static void TimerTest() 10 { 11 System.Timers.Timer timer = newSystem.Timers.Timer(); 12 timer.Interval = 3000; // 3秒觸發一次 13 timer.AutoReset = true; // 重複觸發 14 timer.Elapsed += (s, e) => // 觸發時執行的事件 15 { 16 Console.WriteLine($"[{DateTime.Now}] 觸發執行,CurrentThreadId:{System.Threading.Thread.CurrentThread.ManagedThreadId}"); 17 while (true) { } // 長時間執行,這樣就能1個工作執行緒執行1個事件程式碼了 18 }; 19 timer.Start(); // 啟動定時器 20 } 21 #endregion
執行結果:
把while(true)註釋掉,再看一下執行效果: