2016-06-10 61 views
1

我正在创建一个使用定时器间隔的Windows服务。这个计时器重复每秒,但它可能需要更长的时间超过一秒钟可以完成Elapsed事件定时器,这是如下创建的:如果功能没有完成,定时器是否继续

Timer timer = new Timer(); 
timer.Enabled = true; 
timer.Interval = 1000; // 1 second 
timer.Elapsed += myFunction; 

现在简单的问题:即使没有这是否计时器继续Elapsed事件还未完成,还是定时器等待并在Elapsed事件结束时继续?

回答

3

System.Timers.Timer类有一个AutoReset属性。

如果设置为false,计时器将只运行一次,允许您在功能完成时再次启动计时器。

如果将其设置为true,定时器不会停止并且每秒运行您的函数,除非弹出一个异常。

默认情况下,此属性is set to true

3

是的,它

如果物业对于SynchronizingObject为null,经过的事件引发的一个线程池线程。如果处理Elapsed事件的持续时间比Interval长,则可能会在另一个ThreadPool线程上再次引发该事件。在这种情况下,事件处理程序应该是可重入的。

Source

相关问题