Почему параллельная версия была медленнее, чем последовательная версия в этом примере?

За последние несколько дней я немного узнал о параллелизме и наткнулся наэтот пример.

Я положил его из стороны в сторону с последовательным циклом for следующим образом:

<code>private static void NoParallelTest()
{
    int[] nums = Enumerable.Range(0, 1000000).ToArray();
    long total = 0;
    var watch = Stopwatch.StartNew();
    for (int i = 0; i < nums.Length; i++)
    {
        total += nums[i];
    }
    Console.WriteLine("NoParallel");
    Console.WriteLine(watch.ElapsedMilliseconds);
    Console.WriteLine("The total is {0}", total);
}
</code>

Я был удивлен, увидев, что метод NoParallel завершил работу намного быстрее, чем приведенный на сайте параллельный пример.

У меня есть компьютер i5.

Я действительно думал, что параллельный метод закончится быстрее.

Есть ли разумное объяснение этому? Может я что то не так понял?

Ответы на вопрос(2)

Ваш ответ на вопрос