【问题标题】:How to measure time in millisecond precision by thread如何通过线程以毫秒精度测量时间
【发布时间】:2016-08-05 08:03:28
【问题描述】:

我需要精确测量事件时间(假设两次点击之间的时间)。我使用了一个计时器并将间隔设置为“1”,并在 Tick 事件中设置了一个计数器。问题是由于我的代码中有很多行,Tick 事件实际上并不是每 1 毫秒发生一次(可能是每 8 毫秒或更长时间)。有没有办法使用线程并在其中独立运行 1ms-timer?

【问题讨论】:

  • 我怀疑你会得到那个级别的准确性。 8ms 你应该很高兴。
  • relevant: stackoverflow.com/a/28648/578411 但是当你搜索 high precision timer [c#] 时会有更多发现
  • 通常,如果您需要测量一个区间,您将使用Stopwatch 而不是Timer
  • 嗯,你到底想测量什么?如果您所做的一切都以毫秒为单位,那么您可能根本不想使用实际计数。当你需要使用该值时,只需获取时间戳差异
  • @Dcember:第一次点击时,记录时间戳。在第二次单击时,获取时间戳并从中减去第一个。那么你就有答案了

标签: c# multithreading timer


【解决方案1】:
        //start
        long start = DateTime.Now.Ticks;

        //to do something
        //...

        //end
        long end = DateTime.Now.Ticks;
        long delta = end - start;

【讨论】:

【解决方案2】:
var stopWatch = Stopwatch.StartNew();

// do something

stopWatch.Stop();

Console.WriteLine(stopWatch.ElapsedMilliseconds);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多