System.Timers.Timer(定時器)


1.System.Timers命名空間下的Timer類。System.Timers.Timer類:定義一個System.Timers.Timer對象,然后綁定Elapsed事件,通過Start()方法來啟動計時,通過Stop()方法或者Enable=false停止計時。AutoReset屬性設置是否重復計時(設置為false只執行一次,設置為true可以多次執行)。Elapsed事件綁定相當於另開了一個線程,也就是說在Elapsed綁定的事件里不能訪問其它線程里的控件(需要定義委托,通過Invoke調用委托訪問其它線程里面的控件)。

System.Timers.Timer MTM_Timer;

//定義作業執行時間
private readonly double MTM_Interval = Convert.ToDouble(ConfigurationManager.AppSettings["MTMShareCountryMain"]);
private static int RunFlag = 0;

//定義固定時間執行
private readonly int EXECMTMShareCountry = Convert.ToInt32(ConfigurationManager.AppSettings["EXECMTMShareCountry"]);

public void MTMShareCountryMain()
{

RunFlag = 0;

if (MTM_Timer == null)
{
RunFlag = 0;
MTM_Timer = new System.Timers.Timer();

//周期時間
MTM_Timer.Interval = MTM_Interval;

//到達時間的時候執行事件
MTM_Timer.Elapsed += new System.Timers.ElapsedEventHandler(MTMShareCountry);

//是否執行Elapsed事件
MTM_Timer.Enabled = true;

//設置是執行一次(false)還是一直執行(true)
MTM_Timer.AutoReset = true;

//啟動作業
MTM_Timer.Start();
}

}
private void MTMShareCountry(object sender, System.Timers.ElapsedEventArgs e)
{
if (DateTime.Now.Hour == EXECMTMShareCountry)//判斷當前時間與定義時間是否一致
{
if (RunFlag == 1)
return;
RunFlag = 1;


try
{
InitializeShareCountry();//調用后台方法
}
catch (Exception ex)
{

}
finally
{
RunFlag = 0;
}

}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM