我刚刚在简单的for循环中遇到了一个奇怪的问题。当我尝试访问 input_list [i] 时,我得到 ArgumentOutOfRangeException 。 input_list 是一些对象的列表,有两个成员。但是当抛出异常时, i 等于 2 。
post_max_size=10M
在第二个版本中,我只引入了一个局部变量 k ,用作 input_list 的索引:
var count = input_list.Count;
var taskList = new Thread[count];
for (int i = 0; i < count; i++)
{
taskList[i] = new Thread(() => SomeFunction(input_list[i]);
taskList[i].Start();
}
第二个版本不会抛出异常。
那么,在这个例子中, i 怎么能 2 ?为什么 k 以同样的方式成为 2 ?
我正在使用.NET Framework和Visual Studio 2015的4.6版。