我很好奇.NET BCL 属性Environment.TickCount 是如何实现的。我现在特别想知道它是否受到以下影响系统时间调整.
我对该属性是如何实现的第一个猜测是它只是一个围绕获取TickCount方法。但是,该文档的获取刻度数方法指出它是受 GetSystemTimeAdjustment 函数所做调整的影响但文档环境.TickCount没有提及任何有关时间调整的内容。
我试图弄清楚是否可以将 Environment.TickCount 用作(尽管精度较低)持续增加的时间值。
No, Environment.TickCount不受系统时间调整的影响。这是我对文档的解释,但我的好奇心需要更严格的证明,因此我运行了以下代码,同时来回调整系统一小时:
while (true)
{
Console.WriteLine(Environment.TickCount);
Thread.Sleep(1000);
}
...输出显示了一个完美的序列,不受时间调整的影响。
Update
因此,我做了一些更多的作业,由下面评论中马库斯的问题引发。我非常确定(但无法确认)Environment.TickCount 会调用GetTickCount文档中提到了以下内容:
GetTickCount 的分辨率
功能受限于分辨率
系统定时器,即
通常在 10 范围内
毫秒到 16 毫秒。这
GetTickCount 的分辨率
功能也受到影响
作出的调整
获取系统时间调整函数。
因此,虽然它不受更改系统时间的影响,但似乎will受到调用引起的调整的影响SetSystemTimeAdjustment.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)