System.Diagnostics.Stopwatch是您的计时中这种粒度的正确类,但请确保使用您的Stopwatch对象的Elapsed.Ticks
属性而不是其ElapsedTicks
属性,因为它们是两个不同的东西.
ElapsedTicks
(没有点)是指秒表的刻度数,因此需要与Stopwatch.Frequency
(在所有机器上不一样)一起使用来计算经过时间.Elapsed.Ticks
(与点)给出的数量Timespan
蜱,并且是不依赖于秒表频率.
这可能是.Net中最微妙的潜在错误之一.
此外,请注意秒表是高度精细的,但它不一定都是准确的(取决于您对术语的定义).秒表返回的经过时间往往会偏离系统时间.
在我的笔记本电脑上,秒表在24小时内提前运行了大约5秒钟,这种效果在其他一些机器上更糟糕.
当然,如果你的时间很短,那么这种影响根本不重要.