1. 程式人生 > >定時器Enable Disable控制

定時器Enable Disable控制

lee pre highlight source thread 分享 auto 分布式 問題

問題:定時器如何控制它一會可用一會不可用,根據某個業務需求,
比如:一個控制臺程序掃描表中某個條件的數據,處理數據,控制臺分布式部署,當主機宕機後,從機掃描定時器需要可用,當主機復活後,從機的掃描定時器不可用,主機控制臺不小心被關閉是需要調用關閉事件,修改循環條件停止循環處理數據,並等待3秒,處理完當前數據
下面就是用來控制定時器可用不可用的示例:
class Program { //實例化Timer類 private static System.Timers.Timer aTimer = new System.Timers.Timer(); static void Main(string[] args) { aTimer.Elapsed += new ElapsedEventHandler(TaskBegin); aTimer.Interval = 1000; aTimer.AutoReset = true;//執行一次 false,一直執行true //是否執行System.Timers.Timer.Elapsed事件 aTimer.Enabled = false; Console.WriteLine("不會開始"); System.Threading.Thread.Sleep(5000); aTimer.Enabled = true ; Console.WriteLine("開始"); System.Threading.Thread.Sleep(5000); aTimer.Enabled = false; Console.WriteLine("停止"); System.Threading.Thread.Sleep(5000); aTimer.Enabled = true; Console.WriteLine("開始"); System.Threading.Thread.Sleep(5000); aTimer.Enabled = false; Console.WriteLine("停止"); System.Threading.Thread.Sleep(5000); aTimer.Enabled = true; Console.WriteLine("開始"); Console.ReadKey(); } private static void TaskBegin(object source, System.Timers.ElapsedEventArgs e) { System.Threading.Thread.Sleep(2000); Console.WriteLine("任務開始執行"); } }

  運行結果:

技術分享圖片

定時器Enable Disable控制