问题:定时器如何控制它一会可用一会不可用,根据某个业务需求,
比如:一个控制台程序扫描表中某个条件的数据,处理数据,控制台分布式部署,当主机宕机后,从机扫描定时器需要可用,当主机复活后,从机的扫描定时器不可用,主机控制台不小心被关闭是需要调用关闭事件,修改循环条件停止循环处理数据,并等待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("任务开始执行"); } }
运行结果: