.Net Framework 4.0中的"for"是否并行执行循环?或者为什么总数不是各部分的总和

Shi*_*iji 4 c# .net-4.0

我正在编写代码来测试一个网站的性能.我有以下代码:

        string url = "http://xxxxxx";
        System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();

        System.Diagnostics.Stopwatch totalTime = new System.Diagnostics.Stopwatch();
        totalTime.Start();

        for (int i = 0; i < 10; i++)
        {
            stopwatch.Start();
            WebRequest request = HttpWebRequest.Create(url);
            WebResponse webResponse = request.GetResponse();
            webResponse.Close();
            stopwatch.Stop();
            textBox1.Text += "Time Taken " + i.ToString() + " = " + stopwatch.Elapsed.Milliseconds.ToString() + Environment.NewLine;
            stopwatch.Reset();

        }

        totalTime.Stop();
        textBox1.Text += "Total Time Taken = " + totalTime.Elapsed.Milliseconds.ToString() + Environment.NewLine;
Run Code Online (Sandbox Code Playgroud)

这给出了以下结果:

Time Taken 0 = 88
Time Taken 1 = 161
Time Taken 2 = 218
Time Taken 3 = 417
Time Taken 4 = 236
Time Taken 5 = 217
Time Taken 6 = 217
Time Taken 7 = 218
Time Taken 8 = 409
Time Taken 9 = 48
Total Time Taken = 257
Run Code Online (Sandbox Code Playgroud)

我原以为总时间是个别时间的总和.任何人都能明白为什么不是吗?

Dav*_*ton 16

使用TotalMilliseconds而不是Milliseconds并再次尝试测试.您的结果不是您认为的结果.

  • 毫秒获得时间的当前毫秒*部分*,因此1.234秒将给出234. TotalMilliseconds以毫秒返回整个时间,因此上面将是1234. (3认同)