Заполнение массивов в отдельных потоках - C#
Формулировка задачи:
Всем доброго времени суток. Вопрос касается потоков в c#. написал говнокод небольшую консольную прожку, которая должна заполнять int массивы в разных потоках. по идеи так они будут заполняться быстрее чем в одном. Коллекция массивов в одном потоке заполняется так :
пока все нормально, но когда пытаюсь раскидать заполнение каждого массива в отдельный поток :
возникает ошибка
static List<int[]> massives = new List<int[]>();
...
static void func()
{
for (int j = 0; j < mass; j++)
{
massives.Add(new int[count]);
for (int i = 0; i < count; i++)
{
massives[j][i] = _rand.Next(1, 101);
Console.WriteLine("Массив " + j +
" заполнен " + massives[j][i]);
}
}
}
static void threadfunc()
{
for (int j =0; j < mass; j++)
{
massives.Add(new int[count]);
new Thread (delegate(){
for (int i = 0; i < count; i++)
{
massives[j][i] = _rand.Next(1,101); //индекс за границами диапазона
Console.WriteLine("Массив "+ j +" из потока " + j + " Заполнен " + massives[j][i]);
};
}).Start();
}
}индекс за границами диапазона
. С чем это связано, как исправить? СпасибоРешение задачи: «Заполнение массивов в отдельных потоках»
textual
Листинг программы
// Код с ошибкой
for (int j=0; j<10; j++)
{
new Thread(() => { for (int i=0; i<100000000; i++); Console.WriteLine(j); } ).Start();
}