我试试这个:
Stopwatch timer = new Stopwatch();
timer.Start();
for (i = 0; i < 100; i++) {
//do here some stuff
Thread.Sleep(500);
}
timer.Stop();
TimeSpan ts = timer.Elapsed;
Console.WriteLine(ts.Milliseconds);
它显示我49毫秒,但实际上它是在2分钟内完成的。这是教育方式,我必须考虑睡眠时间。我怎么能这样做?
答案 0 :(得分:3)
Timespan.Milliseconds
属性在减去经过的秒数,分钟数,小时数等后,返回时间跨度的毫秒部分。您可能需要TimeSpan.TotalMilliseconds
。
请参阅此帖子以获取解释:C# Timespan Milliseconds vs TotalMilliseconds
答案 1 :(得分:1)
我认为这是一个单位问题,尝试直接从秒表中获取ms,这对我有用:
Stopwatch timer = new Stopwatch();
timer.Start();
for (int i = 0; i < 20; i++)
{
//do here some stuff
Thread.Sleep(500);
}
timer.Stop();
long ms = timer.ElapsedMilliseconds;
Console.WriteLine(ms);
Console.ReadLine();
答案 2 :(得分:0)
使用秒表不准确,如果您想要精确测量某些代码的执行,则必须使用操作系统内置的性能计数器。
检查this
。