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)注释掉,再看一下运行效果:

 

 

posted @ 2021-01-02 13:34  温故纳新  阅读(1222)  评论(0编辑  收藏  举报