Заполнение массивов в отдельных потоках - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д