为什么ElapsedTicks X 10 000不等于.Net的秒表的ElapsedMilliseconds?

uri*_*ium 7 .net performance

我正在尝试性能测试一些代码.我正在使用秒表.当我输出毫秒数时,它总是告诉我0所以我认为我会尝试滴答数.我看到滴答的数量大约是20 000到30 000.在TimeSpan.TicksPerMillisecond上查看MSDN,它表示每毫秒有10 000个滴答.在那种情况下,为什么我的秒表上经过的毫秒没有显示为2或3?

我错过了什么?我甚至在同一条线上输出了结果.这就是我得到的.

Time taken: 26856 ticks, 0 ms
Run Code Online (Sandbox Code Playgroud)

它是不变的.

编辑(添加了一些代码)这是我在循环中运行的代码.我意识到我每次都在创造一个新的秒表,效率不高但我不知道它会如何扭曲我的结果.多谢你们

Dim SW = New Stopwatch()
SW.Reset()
SW.Start()
MethodCall()
SW.Stop()
Console.WriteLine(String.Format("Time to increase counters: {0} ticks, {1} ms", SW.ElapsedTicks, SW.ElapsedMilliseconds))
Run Code Online (Sandbox Code Playgroud)

Joe*_*Joe 10

Stopwatch蜱虫与DateTime蜱虫不同.

Stopwatch刻度的长度取决于秒表频率(一个刻度是一秒除以频率,如秒表的MSDN文档中所述.ElapsedTicks.

可以认为,Stopwatch.ElapsedTicks由于可能会与DateTime标记混淆,因此该属性的名称选择不佳.我会喜欢ElapsedRawTicks或其他一些合适的形容词限定词来暗示这些不是标准的Ticks.