用Timer解決問題的思路很簡單,首先設定Timer類的Interval屬性(單位是毫秒),也就是時間間隔;然后在Timer的Elapsed的事件里寫執(zhí)行代碼,每過一個設置好的Interval時間間隔,將執(zhí)行一次Elapsed中的事件 (這和VB程序中的Timer控件基本沒有區(qū)別)。
那知道了用什么類,這些代碼要寫在哪里呢?把代碼寫在Global.asax件中,在VS的項目上右鍵,點添加--》新建項,選“全局應用程序類”,項目中就會有Global.asax文件了。
為了表達清楚直接上代碼(首先在Global.asax文件頭部引入system.Timers命名控件):
<span style="font-size:18px;"> public class Global : System.Web.HttpApplication
{
//在網(wǎng)站運行時這段代碼同時啟動
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"];
/*測試數(shù)據(jù)*/
if(Time.Equals(OrderTime))
{
//如果時間相等,執(zhí)行你要執(zhí)行的操作,這里可以調(diào)用你程序中的其他類的方法
}
}</span>
這樣就能達到定時執(zhí)行程序的目的了。
這是用在我項目中的定時執(zhí)行,在論壇里問關于定時執(zhí)行的方案,也有人說用windows服務比較安全
更多信息請查看IT技術(shù)專欄