我处于需要每秒执行X次操作的情况(刷新PictureBox或从套接字缓冲区中提取字节)。我想知道是否有正确的方法来做到这一点。我做了一些研究,但我找到了几种解决方法。
我可以在while循环中工作并不断询问操作系统现在是时候检查是否已经过了X时间。(DateTime.UtcNow)
我可以在while循环中工作并让它睡一段时间。
我可以在while循环中工作,并使用Clock类来检查已用时间。
使用Timer Class引发事件。
这些都是我所知道的定期发生事情的方式。第二种方法不是很精确,但我把它放在这里是为了完成。还有其他我应该注意的方法吗?哪一个开销最小?
我正在使用VisualStudio 2015 C#和.NET 4.6.1版本
答案 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中的时间执行。