.Net System.Timers.Timer:如果我使用小于1ms的间隔会发生什么?

问题描述:

如果我将System.Timers.Timer的间隔设置为.5,会发生什么?.Net System.Timers.Timer:如果我使用小于1ms的间隔会发生什么?

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

+0

谢谢你,你一直很有帮助... – ConditionRacer 2012-07-05 16:45:50

+0

是否有你需要少于1ms的原因?你想要做电脑交易吗? – Limey 2012-07-05 18:09:53

+0

我写软件来模拟“战争系统”..非常高速的战争系统。在不违反NDA的情况下不能再多说了。 – ConditionRacer 2012-07-05 21:07:36

通常,什么都没有。一般来说,Windows内的定时器只能精确到特定的时间间隔,大约15ms左右。小于此值的任何事情通常只会导致定时器每14-15ms左右触发一次。

这就是说,该框架不是纯Windows。在不同的实时操作系统上,您可能会比每一毫秒更频繁地使计时器更频繁地引发事件。框架API并不假定你将会处理非实时操作系统的局限性,尽管实际情况是这样(大多数时候)。

请注意,在内部,System.Timers.Timer实际上使用System.Threading.Timer作为其实现,它使用Int32 for period and dueTime。因此,Windows版本不可能有非整数时序。该框架在通过的间隔上使用Math.Ceiling,因此您将获得1ms的间隔。这就是说,这是一个实现细节,所以不是一般应该依赖的东西。

+0

很高兴知道。是否有任何实时操作系统支持.net框架? – ConditionRacer 2012-07-05 16:45:18

+0

@Justin984 Windows CE,但我不知道框架实现是否与普通框架相同,这会将其视为1ms – 2012-07-05 16:46:39