Заполнение массивов в отдельных потоках - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток. Вопрос касается потоков в c#. написал говнокод небольшую консольную прожку, которая должна заполнять int массивы в разных потоках. по идеи так они будут заполняться быстрее чем в одном. Коллекция массивов в одном потоке заполняется так :
Листинг программы
  1. static List<int[]> massives = new List<int[]>();
  2. ...
  3. static void func()
  4. {
  5. for (int j = 0; j < mass; j++)
  6. {
  7. massives.Add(new int[count]);
  8. for (int i = 0; i < count; i++)
  9. {
  10. massives[j][i] = _rand.Next(1, 101);
  11. Console.WriteLine("Массив " + j +
  12. " заполнен " + massives[j][i]);
  13. }
  14. }
  15. }
пока все нормально, но когда пытаюсь раскидать заполнение каждого массива в отдельный поток :
Листинг программы
  1. static void threadfunc()
  2. {
  3. for (int j =0; j < mass; j++)
  4. {
  5. massives.Add(new int[count]);
  6. new Thread (delegate(){
  7. for (int i = 0; i < count; i++)
  8. {
  9. massives[j][i] = _rand.Next(1,101); //индекс за границами диапазона
  10. Console.WriteLine("Массив "+ j +" из потока " + j + " Заполнен " + massives[j][i]);
  11. };
  12. }).Start();
  13. }
  14. }
возникает ошибка

индекс за границами диапазона

. С чем это связано, как исправить? Спасибо

Решение задачи: «Заполнение массивов в отдельных потоках»

textual
Листинг программы
  1. // Код с ошибкой
  2. for (int j=0; j<10; j++)
  3. {
  4.     new Thread(() => { for (int i=0; i<100000000; i++); Console.WriteLine(j); } ).Start();
  5. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы