2013-11-14 22 views
1

我有一个目前正在测试的控制台服务。我打算使用计时器来持续一整天,每隔30秒进行一次间隔检查,但是,它看起来像很多人不喜欢以这种方式使用计时器的服务。使用计时器是明智的吗?或者是他们接近它的更好方法?在Windows服务中使用计时器是否明智?

+0

他们不喜欢以这种方式使用它们的原因是什么?你以这种方式运行它的理由是什么? – Noctis

+0

你打算每30秒检查一次?这往往足以干扰节电并导致电池寿命明显缩短。 –

+0

您可能想要考虑如果动作持续30秒以上会发生什么情况......您是否同时多次同时执行同一任务?或等待第一个完成? –

回答

3

在服务内部有定时器是很好的。

您应该问自己的问题是您是需要自己的服务,还是只能使用已运行定时器的服务(任务计划程序)。或者,您可能应该对用户操作做出响应。

+0

谢谢,我会在做最后的任何事情之前看看任务调度程序,现在只是测试它的工作原理。 –

1

我怀疑他们试图让你使用基于线程的方法this way这样做,这可以说是优越的,因为等待方法被设计为响应服务接口而正确唤醒。

如果您需要非常频繁地启动服务方法比计划任务更好。

+0

这似乎不如WaitableTimer ......但我不确定是否有一个.NET包装程序“CreateWaitableTimer”和朋友。 –

+0

我并没有说这样比较好,我说过有些人认为这样比较好 - 有些像OP这样的人反对服务中的定时器。定时器比较熟悉,但AutoResetClass避免使用额外的定时器资源 - 较小的技术优势,难以理解 –

+0

WaitableTimer与.NET定时器类不同。这是一个像自动重置事件一样的等待手柄。只要希望在不考虑任务处理时间的情况下休眠一段固定的时间间隔,并且不以固定频率执行任务,则链接的代码就可以正常工作。 –

相关问题