计算两个时间跨度之间差异的推荐方法

本文关键字:方法 之间 时间跨度 两个 计算 | 更新日期: 2023-09-27 18:19:31

计算精确到微秒级别的时间差的最佳方法应该是什么。目前我正在做以下工作:

((TimeSpan)(DateTime.Now - _perfClock)).TotalMilliseconds

注意:perfClock是DateTime(在任务之前设置)

假设它的精度高达毫秒,但在我的情况下,它显示的值以"000"结尾。比如80009000等等。。。这迫使我认为这只是在某个地方将秒转换为毫秒,而不是以毫秒为单位计算差异。(可能我在上面的代码中有些地方错了)。

但是,准确计算时差的推荐机制应该是什么?

-Sumeet

计算两个时间跨度之间差异的推荐方法

问题不在于TimeSpan,它精确到100纳秒。

问题是你正在使用DateTime。现在是你的计时器。

DateTime。我相信现在准确到16毫秒左右。正如V4Vendetta所提到的,如果您需要"高分辨率"的结果,则需要使用Stopwatch。秒表可以为您提供刻度(长)或TimeSpan。使用时间跨度可以方便地进行操作(在您的情况下,可以进行加法/减法)。

还请注意,Stopwatch提供了.IsHighResolution属性,以查看您是否具有比Datetime更好的准确性。现在(在PC iirc上总是如此)

我不知道您测量时间的上下文,但最好从Stopwatch开始并检查结果。

同样值得一读的是精确测量

您尝试过吗:

TimeSpan diff = DateTime.Now.Subtract(_perfClock);