代码之家  ›  专栏  ›  技术社区  ›  uriDium

为什么对于.Net的秒表,ElapsedTicks X 10000不等于ElapsedMilliseconds?

  •  7
  • uriDium  · 技术社区  · 14 年前

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

    Time taken: 26856 ticks, 0 ms
    

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

    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))
    
    2 回复  |  直到 14 年前
        1
  •  10
  •   to StackOverflow    14 年前

    Stopwatch 蜱虫不同于 DateTime 滴答声。

    一根绳子的长度 滴答声取决于秒表频率(一滴答声等于1秒除以频率,如中所述) the MSDN documentation for Stopwatch.ElapsedTicks

    可以说 Stopwatch.ElapsedTicks 此属性的名称选择不当,因为可能与日期时间记号混淆。我更喜欢像ElapsedRawTicks这样的东西,或者其他合适的形容词限定符来暗示这些不是标准的Ticks。

        2
  •  0
  •   Anton Gogolev    14 年前

    确保你真的开始 Stopwatch 你用的是 Stopwatch.ElapsedMilliseconds Stopwatch.Elapsed.TotalMilliseconds