我用.net2.0 C#做服务,服务里边有5个 System.timer.Timer ,设置一定的间隔时间。 发现 总有的Timer

2024-11-08 23:01:03
推荐回答(5个)
回答1:

如果是只执行一次的话是说明没有设置aTimer.AutoReset = true;
如果是时间间隔不准确的话是正常的,timer不是一个精准定时器;

以下来自msdn:
当编写 Timer 组件时,需要考虑 Interval 属性的几点限制:

如果应用程序或另一个应用程序对系统需求很大(如长循环、大量的计算或驱动程序、网络或端口访问),那么应用程序可能无法以 Interval 属性指定的频率来获取计时器事件。

间隔可以在 1 和 64,767 之间(包括 1 和 64,767),这意味着即使最长的间隔(大约 64.8 秒)也不会超过一分钟很多。

不能保证间隔所精确经过的时间。若要确保精确,计时器应根据需要检查系统时钟,而不是尝试在内部跟踪所积累的时间。

系统每秒生成 18 个时钟刻度,因此即使 Interval 属性以毫秒为单位,间隔的实际精度也不会超过十八分之一秒。

希望对你有所帮助。

回答2:

Timer不是那么准一定按间隔时间执行的,如果服务太忙,它就会被延迟

回答3:

每次都是不同的timer控件不执行麽?

回答4:

断点看看执行了没。。

回答5:

这么说很难解决,要么把全部代码贴上来看,最简单的方法是你自己debug一下,走到哪步不执行你自己看下就明白了