读书人

Windows Service 多个timer怎么不同时

发布时间: 2012-09-10 11:02:33 作者: rapoo

Windows Service 多个timer如何不同时执行?
描述
在Windows Service 中,定义了三个timer,都是每分钟执行一次,并且都访问数据库

C# code
            timer1= new System.Timers.Timer();            timer1.Enabled = true;            timer1.Interval = 60000;            timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);            timer2= new System.Timers.Timer();            timer2.Enabled = true;            timer2.Interval = 60000;            timer2.Elapsed += new System.Timers.ElapsedEventHandler(this.timer2_Elapsed);            timer3= new System.Timers.Timer();            timer3.Enabled = true;            timer3.Interval = 60000;            timer3.Elapsed += new System.Timers.ElapsedEventHandler(this.timer3_Elapsed);


问题
1、同一时间,如何只执行一个timer,其它的等待?
2、这个执行中的timer,未结束前,不开始自身的下一次?

预期的效果
同一时间,只有一个timer执行,且不会反复执行,结束后执行其它待等中的timer。

[解决办法]
2:

当 AutoReset 设置为 false 时,Timer 只在第一个 Interval 过后引发一次 Elapsed 事件。若要保持以 Interval 时间间隔引发 Elapsed 事件,请将 AutoReset 设置为 true。

来自msdn:
http://msdn.microsoft.com/zh-cn/library/system.timers.timer(v=vs.80).aspx

读书人网 >C#

热点推荐