Csharp/C#教程:系统时钟调整会影响在C#中运行秒表吗?分享


系统时钟调整会影响在C#中运行秒表吗?

假设我在我的代码中运行了Stopwatch ,在中间,其他一些应用程序已经改变了系统时钟(我的服务器上的域时间每秒同步)。

它会影响秒表结果吗?

不,内部秒表依赖于Win32 QueryPerformanceCounter() ,它与系统时钟无关。

这取决于。

当Win32 QueryPerformanceCounter()可用时,它依赖Win32 QueryPerformanceCounter() 。 此实现是时间更改容忍的。

如果高分辨率计数器不可用, Stopwatch回退到系统计时器,基本上是DateTime.UtcNow.Ticks调用。 在这种不幸的情况下, Stopwatch结果将受到时间(而不是时区)变化的影响。

正如引用的MSDN文章中所述,您可以使用IsHighResolution字段检查高分辨率计数器是否可用。

你可以怪.Net团队使用这个不会修复缺陷 ?

不,它不会影响它。

来自MSDN :

秒表通过计算基础计时器机制中的计时器滴答来测量经过的时间。 如果安装的硬件和操作系统支持高分辨率性能计数器,则Stopwatch类使用该计数器来测量经过的时间。 否则,Stopwatch类使用系统计时器来测量经过的时间。 使用Frequency和IsHighResolution字段确定秒表计时实施的精度和分辨率。

上述就是C#学习教程:系统时钟调整会影响在C#中运行秒表吗?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/999706.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐