.net 当我的主要方法在windows服务中运行时,我应该让计时器休眠吗
在我的.net windows服务中,当我的计时器过期并调用我的主方法时,将计时器置于睡眠模式是否是最佳做法.net 当我的主要方法在windows服务中运行时,我应该让计时器休眠吗,.net,windows-services,timer,.net,Windows Services,Timer,在我的.net windows服务中,当我的计时器过期并调用我的主方法时,将计时器置于睡眠模式是否是最佳做法 这是为了防止我的main方法运行太长时间,并且在前一次调用main方法完成其执行之前计时器已过。它实际上不是一个main方法,但我想您只是指作为已过事件的结果而被调用的方法。视情况而定。您是需要它在每个时间间隔运行,还是只需要在每个时间间隔启动流程,如果它已经在运行,则什么都不要做 如果后一种情况是这样的,正如我所怀疑的,既然您正在问这个问题,那么请继续,并停止计时器,作为已用事件处理程
这是为了防止我的main方法运行太长时间,并且在前一次调用main方法完成其执行之前计时器已过。它实际上不是一个main方法,但我想您只是指作为已过事件的结果而被调用的方法。视情况而定。您是需要它在每个时间间隔运行,还是只需要在每个时间间隔启动流程,如果它已经在运行,则什么都不要做
如果后一种情况是这样的,正如我所怀疑的,既然您正在问这个问题,那么请继续,并停止计时器,作为已用事件处理程序中的第一条语句。然后在完成主方法中的所有其他操作后再次启动计时器。在BobbyShaftoe提到的基础上,我建议使用try/catch/finally块,并将重新启动计时器的代码放在finally块中。因此,如果发生异常,计时器仍将重新启动并稍后运行。除非你希望它无限期地停止