如何有效地设置system.timer每季度运行一次Windows服务(12周一次)?

时间:2011-03-03 09:43:22

标签: c# windows-services timer

如何在12周内运行一次Windows服务?我使用定时器实现它,我将定时器间隔指定为(12 * 7 * 24 * 60 * 60 * 1000毫秒)。如果我使用计时器这样的持续时间(12 * 7 * 24 * 60 * 60 * 1000毫秒),是否有任何问题。

如果它导致问题,请建议另外一种方法,每12周运行一次Windows服务。

3 个答案:

答案 0 :(得分:2)

嗯,是的,它会引起问题。 Int32.MaxValue是2,147,483,647。

难道你不能只安排你的服务在12周内运行一次吗?你可以使用

net start yourservice
net stop yourservice

(根据sajoshi的评论:我的意思是你可以使用任务计划程序启动和停止服务)

答案 1 :(得分:1)

你应该使用windows任务调度程序来做这种事情。您可以将其设置为以不同的间隔启动任何应用程序(而不是Windows服务)。

此外,为什么在服务器上运行一个使用内存和cpu周期的应用程序,你每12周只需要一次!

答案 2 :(得分:1)

我认为更好的方法是比较日期。

  1. 使用计时器创建Windows服务 每隔一小时。
  2. 在服务的onstart事件中 存储当前日期。
  3. 在timer_tick / elapsed事件中, 检查当前的差异 日期和存储日期,如果是12 操作。还要更新当前 日期。