定时器间隔为数月

Sco*_*son 2 c# timer

我有一个Windows服务处理由System.Timers.Timer触发的事件.我想将该计时器的间隔设置为3个月.

该System.Timers.Timer的Interval属性是millseconds一个Int32和Int32.MaxValue以毫秒为单位小于3个月.

我该怎么办?

Jam*_*acs 10

你会重新考虑你的设计.存储下次要执行事件时(例如注册表,文件,数据库等),然后定期唤醒以检查是否已经过了该时间.即使您可以将System.Timers.Timer设置为3个月,系统也可能会在计时器关闭之前重新启动并且您将丢失事件.

另一种选择是使用Windows Scheduler执行的预定作业.它会运行一个小程序,向您的服务发送一条消息,说明事件已经发生.这比资源密集程度更低 - 虽然更复杂 - 而不是定期醒来检查3个月是否已经过去.