確切的錯誤:列表索引範圍的異常時創建任務
Index was out of range. Must be non-negative and less than the size of the collection.
我有數組索引,並列出了無數次。我已經使用了無數次數組循環。數據在那裏,它的工作。除了當我嘗試爲我的功能創建一個任務。請注意,我成功地通過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]);
它沒有問題。
你應該使用'Enumerable.Zip'。 – Alexander