Environment.TickCount与DateTime.Now的已用时间不匹配

时间:2013-01-16 08:33:36

标签: .net windows time

我有一个很好的循环,睡眠大约一分钟,并执行以下代码:(或多或少伪,谈论C#,.NET Framework 4.0完整配置文件)

LocalSystemTimeStamp = DateTimeOffset.Now;
StartupTickCount = Environment.TickCount;

此外,我还有一种检查测量数据的检查方法:

TimeSpan interval = current.LocalSystemTimeStamp - old.LocalSystemTimeStamp;
int projectedStartupTickCount = (int)(old.StartupTickCount+ interval.TotalMilliseconds);
if (Math.Abs(projectedStartupTickCount-current.StartupTickCount)>100)
{
   // log the mismatch
}

所以,通常Environment.TickCount和Clock应该以类似的时间尺度前进,并且projectionStartupTickCount和测量的tickcount之间的差异应该匹配。

但是,偶尔这些不匹配几秒钟(在我的情况下为2到6秒)。 这在系统启动时很多,但即使在系统启动并运行一些(随机??)间隔后也会发生。不知怎的,我觉得这些确实在系统/ CPU负载很重时会有所不同。

有人可以解释这种行为吗? (甚至指向匹配的文档?)

0 个答案:

没有答案