Точная ошибка:
Индекс оказался вне допустимого диапазона. Должен быть неотрицательным и меньше размера коллекции.
У меня есть массивы индексов и списки бесчисленных раз. Я использовал для циклов с массивами и списками бесчисленное количество раз. Данные есть, он работает. За исключением случаев, когда я пытаюсь создать задачу для своей функции. Имейте в виду, я успешно сделал это с петлей foreach для аналогичной функции; этот новый требует двух аргументов, поэтому я не могу правильно использовать цикл foreach. По крайней мере, я не думаю, что смогу.
Вот ошибочный код:
if (addressList != null) {
textBox1.Text += ("Address List Length: " + addressList.Count + Environment.NewLine);
for (int i = 0; i < addressList.Count; i++) {
textBox1.Text += ("Task for " + addressList[i] + ":" + portList[i] + " initiated." + Environment.NewLine);
Task.Factory.StartNew(() => PingTaskAdapted(addressList[i], portList[i]));
}
}
else textBox1.Text = ("No IPs have been added.");
Предполагая, что addressList[0]
- google.com, а portList[0]
- 80,
Выход:
Address List Length: 1
Task for google.com:80 initiated.
затем перерыв программы, с Visual Studio, который говорит мне, что в PingTaskAdapted() я вызываю индекс, который выходит за пределы диапазона, когда он буквально просто печатает указанные индексы, потому что они существуют.
И просто чтобы быть ясным, если я звоню PingTaskAdapted(addressList[0], pingList[0]);
, он не будет работать без проблем.