确切的错误:
指数超出范围.必须是非负数且小于集合的大小.
我已经无数次索引数组和列表.我用过数组循环和列表无数次.数据在那里,它的工作原理.除非我尝试为我的功能创建任务.请注意,我成功地使用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.");
Run Code Online (Sandbox Code Playgroud)
假设addressList[0]是google.com并且portList[0]是80,输出:
Address List Length: 1
Task for google.com:80 initiated.
Run Code Online (Sandbox Code Playgroud)
然后程序中断,Visual Studio告诉我在PingTaskAdapted()中我正在调用一个超出范围的索引,当它只是打印出有问题的索引时,因为它们存在.
而且要明确的是,如果我称之为PingTaskAdapted(addressList[0], pingList[0]);没有问题.
c# lambda task indexoutofboundsexception indexoutofrangeexception