C#中是否有任何地方以亚毫秒的精度执行定时操作?我将时间码放在我的软件中,所有内容都以0ms的形式返回。我想知道是否有一种方法可以获得更精细的粒度。
附录:这是获得亚毫秒时序的正确代码吗?
timeSpan.TotalMilliseconds / 10
我的时间仍为0
答案 0 :(得分:16)
您可以尝试使用QueryPerformanceCounter或StopWatch类进行托管方法
答案 1 :(得分:11)
使用System.Diagnostics.Stopwatch
答案 2 :(得分:3)
通常我会通过多次重复操作来测量这些场景(根据需要多少来获得几十或几百毫秒。
然后您可以更轻松地进行调整和测量。
答案 3 :(得分:1)
你可以尝试用Ticks而不是毫秒测量你的表现。它在性能方面会更准确。
但我同意Sam和Tyranid,请使用System.Diagnostics.StopWatch。
答案 4 :(得分:1)
我学到了新东西。那些蜱虫确实很方便。完整的例子:
Stopwatch stopwatch = Stopwatch.StartNew();
// Run code to get duration of
long durationInTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Duration: {(decimal)durationInTicks / TimeSpan.TicksPerMillisecond:f3}ms");
您也可以在stopwatch.ElapsedTicks
内使用Console.WriteLine
,但我不知道是否有任何性能延迟,这就是我首先检索它并将其放入变量的原因。< / p>