C#秒表显示随机时间

时间:2017-08-09 01:33:52

标签: c# stopwatch

我正在尝试计算运行代码块所花费的时间。当我运行应用程序时,它会在每次执行时显示随机时间。这可能是什么问题?

var myTimer = Stopwatch.StartNew();

for(int i = 0; i < 10000; i++)
{
    Console.WriteLine("Hello Boss !");
}

myTimer.Stop();

Console.WriteLine(myTimer.ElapsedMilliseconds);
Console.ReadLine();

2 个答案:

答案 0 :(得分:1)

两件事:

1.-您的代码中没有问题,但我会像以下一样使用它:

var stopwatch = new Stopwatch();
stopwatch.Start();
//// YOUR LOOP OR CODE GOES HERE
stopwatch.Stop();
elapsedTime = stopwatch.ElapsedMilliseconds;
Console.WriteLine($"YOUR LOOP OR CODE took {elapsedTime} ms");

如果你想重复使用秒表,你必须重置它:

 stopwatch.Reset();

在重新开始之前。

2nd.-执行时间(计算机上的每个软件,不仅是这个代码)取决于您的机器工作负载,考虑资源(处理器和磁盘)是共享的,是确定进程优先级和线程管理的操作系统因此,你不会为不同的执行获得相同的值。

答案 1 :(得分:-1)

for循环迭代的执行很大程度上取决于机器资源。 根据资源的可用性,执行时间会不时变化。

如果您担心测试秒表,请尝试下面的代码:) 当然,大多数时候你会得到一个恒定的结果。

            var myTimer = Stopwatch.StartNew();

            Thread.Sleep(10000);

            myTimer.Stop();

            Console.WriteLine(myTimer.ElapsedMilliseconds);
            Console.ReadLine();