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