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