衡量时间的最有效方法是什么?

时间:2016-03-08 11:27:19

标签: c# visual-studio time

我处于需要每秒执行X次操作的情况(刷新PictureBox或从套接字缓冲区中提取字节)。我想知道是否有正确的方法来做到这一点。我做了一些研究,但我找到了几种解决方法。

  1. 我可以在while循环中工作并不断询问操作系统现在是时候检查是否已经过了X时间。(DateTime.UtcNow)

  2. 我可以在while循环中工作并让它睡一段时间。

  3. 我可以在while循环中工作,并使用Clock类来检查已用时间。

  4. 使用Timer Class引发事件。

  5. 这些都是我所知道的定期发生事情的方式。第二种方法不是很精确,但我把它放在这里是为了完成。还有其他我应该注意的方法吗?哪一个开销最小?

    我正在使用VisualStudio 2015 C#和.NET 4.6.1版本

2 个答案:

答案 0 :(得分:2)

使用秒表,与DateTime.Now

相比,使用高精度计时器

DateTime.Now适用于毫秒级精度,而秒表则为微秒。

1 - 1.e-37

答案 1 :(得分:0)

秒表专为此目的而设计,是衡量.NET中时间执行的最佳方法之一。

var watch = System.Diagnostics.Stopwatch.StartNew();
/* the code that you want to measure comes here */
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;

Console.WriteLine(elapsedMs);

不要使用DateTimes来测量.NET中的时间执行。