-2
这里是我的代码:
System.Threading.Timer timer = new Timer((o) =>
{
Console.WriteLine(DateTime.Now.ToString("mm:ss:fff"));
}, null, (1000 - DateTime.Now.Millisecond), 1000);
这里是(approximatly)我收到的时候它运行:
50:17:005
50:18:018
50:19:032
50:20:046
50:21:060
50:22:074
50:23:088
50:24:102
50:25:116
50:26:131
50:27:144
50:28:158
//and so on. Apparently there is a splice to 5-15 ms for each tick
当我改变我的滚动时间998(仅2毫秒的不同!)我收到了下:
48:52:001
48:52:999
48:53:997
48:54:996
48:55:993
48:56:991
48:57:989
48:58:987
48:59:985
49:00:983
49:01:981
49:02:979
//and so on. Apparently that timer ticks almost perfectly!
我的问题是:为什么这样的行为观察?为什么只有2毫秒的差异和准确性差距如此之大?
内容丰富的主题FTW。 – Gerry
提示:不要在问题标题中使用“WTF”,并且如果您想要很好的答案,则一次仅使用一个问题或感叹号。 – jgauffin
你想要做的是相当于测量长度未知的电路板*,尺寸与电路板*尺寸相同,尺寸未知。显然,如果你这样做,你不会得到好的结果!要测量低精度定时器的准确不精确度,您需要使用*高精度定时器*。 **使用秒表来测量定时器的精度。** –