萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> Asp.net定時執行程序

Asp.net定時執行程序

 用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服務比較安全

copyright © 萬盛學電腦網 all rights reserved