Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何用线程测量毫秒精度的时间_C#_Multithreading_Timer - Fatal编程技术网

C# 如何用线程测量毫秒精度的时间

C# 如何用线程测量毫秒精度的时间,c#,multithreading,timer,C#,Multithreading,Timer,我需要精确测量事件时间(假设两次单击之间的时间)。我使用了一个计时器,将时间间隔设置为“1”,并在滴答声事件中设置了一个计数器。问题是,因为我的代码中有很多行,所以滴答事件实际上并不是每1ms(可能每8ms或更长)发生一次。有没有办法使用线程并在其中独立运行1ms计时器?我怀疑您能否达到这样的精度。有了8ms,你应该会很高兴。相关:但是当你搜索高精度计时器[c#]时,你会发现更多。通常,如果你需要测量一个时间间隔,你会使用秒表而不是计时器。那么,你到底想测量什么?如果您所做的一切都是以毫秒为单位

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

我怀疑您能否达到这样的精度。有了8ms,你应该会很高兴。相关:但是当你搜索
高精度计时器[c#]
时,你会发现更多。通常,如果你需要测量一个时间间隔,你会使用
秒表而不是
计时器。那么,你到底想测量什么?如果您所做的一切都是以毫秒为单位计数,那么您可能根本不想使用实际的计数。当您需要使用value@Dcember:第一次单击时,记录时间戳。在第二次单击时,获取时间戳并从中减去第一个时间戳。那你就有答案了我怀疑你会不会得到那样的准确度。有了8ms,你应该会很高兴。相关:但是当你搜索
高精度计时器[c#]
时,你会发现更多。通常,如果你需要测量一个时间间隔,你会使用
秒表而不是
计时器。那么,你到底想测量什么?如果您所做的一切都是以毫秒为单位计数,那么您可能根本不想使用实际的计数。当您需要使用value@Dcember:第一次单击时,记录时间戳。在第二次单击时,获取时间戳并从中减去第一个时间戳。那么你就有了答案直接使用秒表测量要好得多。我想让你看看秒表类的源代码直接使用秒表测量要好得多。我想让你看看秒表类的源代码
        //start
        long start = DateTime.Now.Ticks;

        //to do something
        //...

        //end
        long end = DateTime.Now.Ticks;
        long delta = end - start;
var stopWatch = Stopwatch.StartNew();

// do something

stopWatch.Stop();

Console.WriteLine(stopWatch.ElapsedMilliseconds);