.Net System.Timers.Timer:如果间隔小于1毫秒,会发生什么?

时间:2012-07-05 16:37:57

标签: .net timer

如果我将System.Timers.Timer的间隔设置为.5?

会发生什么

这是我正在添加的更多文字,所以愚蠢的过滤器会让我发布这个问题。

1 个答案:

答案 0 :(得分:3)

通常,没有。通常,Windows中的计时器仅精确到特定的时间间隔,大约15ms。任何小于此的东西通常只会导致定时器每14-15ms左右发射一次。

话虽如此,该框架不仅仅是Windows。在不同的实时操作系统上,您可能会使计时器更频繁地引发事件,而不是每毫秒一次。框架API并不假设您将处理非实时操作系统的限制,即使实际情况是这样(大多数情况下)。

请注意,在内部,System.Timers.Timer实际上使用System.Threading.Timer来实现,Math.Ceiling使用Int32 for period and dueTime。因此,Windows版本不可能具有非整数时序。框架在传递的Interval上使用{{1}},因此您将获得1ms的间隔。话虽这么说,这是一个实现细节,所以不是一般会或者应该依赖的东西。