Jad*_*ias 11 .net timespan stopwatch
我曾经这么认为
Stopwatch.ElapsedTicks
等于 Stopwatch.Elapsed.Ticks
.但事实并非如此.虽然后者是100纳秒的时期,但前者使用了一个神秘的单位timer ticks
.我想知道它们是什么,为什么它们与通常的测量单位不同?
来自文档:
秒表通过计算基础计时器机制中的计时器滴答来测量经过的时间.如果安装的硬件和操作系统支持高分辨率性能计数器,则Stopwatch类使用该计数器来测量经过的时间.否则,Stopwatch类使用系统计时器来测量经过的时间.使用Frequency和IsHighResolution字段确定秒表计时实施的精度和分辨率.
是的,这是一个痛苦,"滴答"被重载意味着两个不同的东西:(
我认为这基本上是因为Stopwatch
它提供了一个非常"原始"的性能计数器视图,它可以通过"tick"实现不同的实现.
根据Stopwatch.ElapsedTicks
秒表测量"滴答",这是1秒/的时间长度Stopwatch.Frequency
.
在内部,这是基于Windows高性能计数器支持(如果您的系统支持,几乎总是如此).本机调用是QueryPerformanceFrequency,它的长度会根据硬件的支持而变化.