C#中,Timer是一個定時器,它能夠按照指定的時間間隔或者指定的時間執行一個事件。spa
指定時間間隔是指按特定的時間間隔,如每1分鐘、每10分鐘、每1個小時等執行指定事件;code
指定時間是指每小時的第30分、天天10:30:30(天天的10點30分30秒)等執行指定的事件;blog
在上述兩種狀況下,都須要使用 Timer.Interval,方法以下:事件
一、按特定的時間間隔:get
using System; using System.Timers; namespace TimerExample { class Program { static void Main(string[] args) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Enabled = true; timer.Interval = 600000; //執行間隔時間,單位爲毫秒; 這裏實際間隔爲10分鐘 timer.Start(); timer.Elapsed += new System.Timers.ElapsedEventHandler(test); Console.ReadKey(); } private static void test(object source, ElapsedEventArgs e) { Console.WriteLine("OK, test event is fired at: " + DateTime.Now.ToString()); } } }
上述代碼,timer.Inverval的時間單位爲毫秒,600000爲10分鐘,因此,上代碼是每隔10分鐘執行一次事件test。注意這裏是Console應用程序,因此在主程序Main中,須要有Console.Readkey()保持Console窗口不關閉,不然,該程序執行後一閃就關閉,不會等10分鐘的時間。string
二、在指定的時刻運行:it
using System; using System.Timers; namespace TimerExample1 { class Program { static void Main(string[] args) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Enabled = true; timer.Interval = 60000;//執行間隔時間,單位爲毫秒;此時時間間隔爲1分鐘 timer.Start(); timer.Elapsed += new System.Timers.ElapsedEventHandler(test); Console.ReadKey(); } private static void test(object source, ElapsedEventArgs e) { if (DateTime.Now.Hour == 10 && DateTime.Now.Minute == 30) //若是當前時間是10點30分 Console.WriteLine("OK, event fired at: " + DateTime.Now.ToString()); } }
上述代碼,是在指定的天天10:30分執行事件。這裏須要注意的是,因爲是指定到特定分鐘執行事件,所以,timer.Inverval的時間間隔最長不得超過1分鐘,不然,長於1分鐘的時間間隔有可能會錯過10:30分這個時間節點,從而致使沒法觸發該事件。event