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