dokładny opis błędu:Lista Index Z wyjątkiem zasięgiem Podczas tworzenia zadania
Index was out of range. Must be non-negative and less than the size of the collection.
mam tablice indeksu i wyświetla niezliczoną ilość razy. Używałem pętli z tablicami i listami niezliczoną ilość razy. Dane tam są, działa. Z wyjątkiem sytuacji, gdy próbuję utworzyć zadanie dla mojej funkcji. Zauważcie, z powodzeniem zrobiłem to z pętlą foreach dla podobnej funkcji; ten nowy wymaga jednak dwóch argumentów, więc nie mogę poprawnie użyć pętli foreach. Przynajmniej nie sądzę, że mogę.
Oto błędny kod:
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.");
Zakładając addressList[0]
jest google.com i portList[0]
80, wyjściowa:
Address List Length: 1
Task for google.com:80 initiated.
następnie Program break, z Visual Studio mówi mi, że w PingTaskAdapted() Dzwonię do indeksu, który jest poza zasięgiem, kiedy dosłownie po prostu wydrukował te indeksy, ponieważ one istnieją.
I dla jasności, jeśli zadzwonię pod numer PingTaskAdapted(addressList[0], pingList[0]);
, to działa bez problemów.
Należy użyć 'Enumerable.Zip'. – Alexander