這篇博客將梳理一下.NET中4個Timer類,及其用法。
1. System.Threading.Timer
public Timer(TimerCallback callback, object state, int dueTime, int period);
callback委托將會在period時間間隔內(nèi)重復(fù)執(zhí)行,state參數(shù)可以傳入想在callback委托中處理的對象,dueTime標(biāo)識多久后callback開始執(zhí)行,period標(biāo)識多久執(zhí)行一次callback。
using System.Threading;// System.Threading.TimerTimer timer = new Timer(delegate{ Console.WriteLine($"Timer Thread: {Thread.CurrentThread.ManagedThreadId}"); Console.WriteLine($"Is Thread Pool: {Thread.CurrentThread.IsThreadPoolThread}"); Console.WriteLine("Timer Action."); },null,2000,1000); Console.WriteLine("Main Action."); Console.WriteLine($"Main Thread: {Thread.CurrentThread.ManagedThreadId}"); Console.ReadLine();
Timer回掉方法執(zhí)行是在另外ThreadPool中一條新線程中執(zhí)行的。
2. System.Timers.Timer
System.Timers.Timer和System.Threading.Timer相比,提供了更多的屬性,
Interval 指定執(zhí)行Elapsed事件的時間間隔;
Elapsed 指定定期執(zhí)行的事件;
<