Исключение индекса вне диапазона при использовании цикла Parallel for

Я пытаюсь выполнить следующий код и все время получаю исключение Index out of range при попытке присвоить значения массива списку: -

        int[] array = new int[1000000];
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = i;
        }

        List<int> list = new List<int>();
        Parallel.For(0, array.Length, i => list.Add(array[i]));

Я что-то здесь не так делаю? Я понимаю, что процесс неупорядоченный / асинхронный, но почему «i» получает значения, превышающие значение «array.Length»?

6
задан Cranialsurge 24 October 2010 в 04:51
поделиться