日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

如何让asp.net应用程序定时自动执行代码

發布時間:2024/9/20 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何让asp.net应用程序定时自动执行代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

asp.net程序一般是當用戶請求一個Page,或者請求一個WebService的時候,才會執行一段代碼,如果我們希望讓程序定時自動執行代碼,但是又不增加新的應用程序,應該怎么做呢?

首先,給你的web應用程序,添加一個“Global.asax”文件,這個類里面默認有一個“Application_Start”,我們就在這個方法里面添加定時程序的邏輯代碼。這樣,只要有一個人訪問了這個web應用,就會啟動這個定時程序。

為了方便我們對定時程序的管理,我們單獨編寫一個類,專門用于控制定時程序。這個類中用的核心對象是System.Timers.Timer。下面說一下這個類設計的基本思路:ExecuteTask是一個公共的事件對象,以后調用者可以利用它來添加回調函數。_task是這個類型的唯一靜態實例,調用者可以用Instance()方法讀取它。_timer就是實現定時運行的對象,Interval是運行的間隔時間。

public class Time_Task
{
??? public event System.Timers.ElapsedEventHandler ExecuteTask;

??? private static readonly Time_Task _task = null;
??? private System.Timers.Timer _timer = null;
??? private int _interval = 1000;

??? public int Interval
??? {
??????? set
??????? {
??????????? _interval = ;
??????? }
??????? get
??????? {
??????????? return _interval;
??????? }
??? }
??? static Time_Task()
??? {
??????? _task = new Time_Task();
??? }
??? public static Time_Task Instance()
??? {
??????? return _task;
??? }
??? public void Start()
??? {
??????? if(_timer == null)
??????? {
??????????? _timer = new System.Timers.Timer(_interval);
??????????? _timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
??????????? _timer.Enabled = true;
??????????? _timer.Start();
??????? }
??? }
??? protected void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
??? {
??????? if(null != ExecuteTask)
??????? {
??????????? ExecuteTask(sender, e);
??????? }
??? }
??? public void Stop()
??? {
??????? if(_timer != null)
??????? {
??????????? _timer.Stop();
??????????? _timer.Dispose();
??????????? _timer = null;
??????? }
??? }
}

有了這個類型,我們可以在Application_Start方法中輕松的實現定時了。

protected void Application_Start(object sender, EventArgs e)
{
??? Time_Task.Instance().ExecuteTask += new System.Timers.ElapsedEventHandler(Global_ExecuteTask);
??? Time_Task.Instance().Interval = 1000 * 60;//表示間隔1分鐘
??? Time_Task.Instance().Start();
}

void Global_ExecuteTask(object sender, System.Timers.ElapsedEventArgs e)
{
??? //在這里編寫需要定時執行的邏輯代碼
}

需要注意的是,當你重新部署web應用的時候,比如更新了DLL文件,或者修改了web.config文件,就會中止這個定時程序,需要有人再次請求Page,才能把它啟動起來。

總結

以上是生活随笔為你收集整理的如何让asp.net应用程序定时自动执行代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。