用Timer解決問題的思路很簡單,首先設定Timer類的Interval屬性(單位是毫秒),也就是時間間隔;然後在Timer的Elapsed的事件裡寫執行代碼,每過一個設置好的Interval時間間隔,將執行一次Elapsed中的事件 (這和VB程序中的Timer控件基本沒有區別)。
那知道了用什麼類,這些代碼要寫在哪裡呢?把代碼寫在Global.asax件中,在VS的項目上右鍵,點添加--》新建項,選“全局應用程序類”,項目中就會有Global.asax文件了。
為了表達清楚直接上代碼(首先在Global.asax文件頭部引入system.Timers命名控件):
<span style="font-size:18px;"> public class Global : System.Web.HttpApplication { //在網站運行時這段代碼同時啟動 protected void Application_Start(object sender, EventArgs e) { System.Timers.Timer objTimer = new System.Timers.Timer(); objTimer.Interval = 60*1000; //這個時間單位:毫秒 objTimer.Enabled = true; //設置Timer類的可用性 //將Timer的Elapsed事件綁定到新建立的timer對象上 objTimer.Elapsed += new ElapsedEventHandler(objTimer_Elapsed); }</span>
下面是在Timer的Elapsed事件中的代碼
<span style="font-size:18px;">void objTimer_Elapsed(object sender, ElapsedEventArgs e) { string Time = DateTime.Now.ToShortTimeString();//獲得當前時間 //從配置文件裡獲得當前設置的時間。 string OrderTime = ConfigurationManager.AppSettings["OrderFoodTime"]; /*測試數據*/ if(Time.Equals(OrderTime)) { //如果時間相等,執行你要執行的操作,這裡可以調用你程序中的其他類的方法 } }</span>
這樣就能達到定時執行程序的目的了。
這是用在我項目中的定時執行,在論壇裡問關於定時執行的方案,也有人說用windows服務比較安全