.NET 4.x Ошибка - Индекс за пределами диапазона - C#

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

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

Здраствуйте! Помогите пож-та решить проблему.
class SomeClass
{
public void SomeMethod(List<string> lst)
{
    //вычисления
}
}
В Main вызываю метод так:
static void Main()
{
List<string> lst = new List<string>();
//потом добавляю 10 элементов
Task[] task = new Task[10];
for (int i = 0; i < task.Length; i++)
{
task[i] = Task.Factory.StartNew(()=>new SomeClass().SomeMethod(lst[i]));
}
Task.WaitAll(task);
for (int i = 0; i < task.Length; i++)
     task[i].Dispose();
}
Получаю ошибку "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции." Я точно знаю, что в List'е 10 элементов и создаю 10 потоков. Почему возникает такая ошибка?

Решение задачи: «.NET 4.x Ошибка - Индекс за пределами диапазона»

textual
Листинг программы
for (int i = 0; i < task.Length; i++)
{
   string tempStr = lst[i];
   task[i] = Task.Factory.StartNew(()=>new SomeClass().SomeMethod(tempStr));
}

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


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

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

9   голосов , оценка 3.556 из 5
Похожие ответы