C# System.Timers.Timer定时器
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 = new System.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)注释掉,再看一下运行效果: