Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 当我的主要方法在windows服务中运行时,我应该让计时器休眠吗_.net_Windows Services_Timer - Fatal编程技术网

.net 当我的主要方法在windows服务中运行时,我应该让计时器休眠吗

.net 当我的主要方法在windows服务中运行时,我应该让计时器休眠吗,.net,windows-services,timer,.net,Windows Services,Timer,在我的.net windows服务中,当我的计时器过期并调用我的主方法时,将计时器置于睡眠模式是否是最佳做法 这是为了防止我的main方法运行太长时间,并且在前一次调用main方法完成其执行之前计时器已过。它实际上不是一个main方法,但我想您只是指作为已过事件的结果而被调用的方法。视情况而定。您是需要它在每个时间间隔运行,还是只需要在每个时间间隔启动流程,如果它已经在运行,则什么都不要做 如果后一种情况是这样的,正如我所怀疑的,既然您正在问这个问题,那么请继续,并停止计时器,作为已用事件处理程

在我的.net windows服务中,当我的计时器过期并调用我的主方法时,将计时器置于睡眠模式是否是最佳做法


这是为了防止我的main方法运行太长时间,并且在前一次调用main方法完成其执行之前计时器已过。

它实际上不是一个main方法,但我想您只是指作为已过事件的结果而被调用的方法。视情况而定。您是需要它在每个时间间隔运行,还是只需要在每个时间间隔启动流程,如果它已经在运行,则什么都不要做


如果后一种情况是这样的,正如我所怀疑的,既然您正在问这个问题,那么请继续,并停止计时器,作为已用事件处理程序中的第一条语句。然后在完成主方法中的所有其他操作后再次启动计时器。

在BobbyShaftoe提到的基础上,我建议使用try/catch/finally块,并将重新启动计时器的代码放在finally块中。因此,如果发生异常,计时器仍将重新启动并稍后运行。除非你希望它无限期地停止