【发布时间】:2009-10-26 13:28:35
【问题描述】:
定时器的最大间隔为 2,147,483,647。大约 25 天。但在我的要求中,我需要计时器将等待 30 天。我该如何解决?请帮忙。
【问题讨论】:
-
哪个定时器?? .NET 中至少有 3 个不同的计时器!
-
顺便说一句,这不是一个错误。错误是您的代码和您的规范不一致。我想你会发现这是一个有据可查的限制。
-
您可以可靠地期望您的流程运行 30 天吗?听起来像一个片状的方法。这种长时间运行的进程应该是独立于进程的......状态应该从一个进程的结束持续到下一个进程的开始。
-
@Rex 也许它会在机器熬夜一个月时安排一个特别的庆祝活动.. ;)
-
@Rex,我为 System.Threading.Timer 制作了一个包装器,它没有 2*32 毫秒(大约 49 天)的限制。我使用它的一个地方是在服务器程序启动期间启动一个计时器,该计时器将在客户许可证到期时触发。这可能在两天或两年内。现在,服务器是否实际运行两年都没有关系 - 当服务器重新启动时,我的程序将重新启动并使用新的到期时间计算重新启动计时器。但对于可以运行很长时间的计时器来说,它是一个简单而有用的应用程序。