我有这段代码给了我一个“索引在数组边界之外”。我不知道为什么会发生这种情况,因为变量i
应该总是小于数组bla
的长度,因此不会导致此错误。索引在尝试启动多个线程时超出了数组的范围
private void buttonDoSomething_Click(object sender, EventArgs e)
{
List<Thread> t = new List<Thread>();
string[] bla = textBoxBla.Lines;
for (int i = 0; i < bla.Length; i++)
{
t.Add(new Thread (() => some_thread_funmction(bla[i])));
t[i].Start();
}
}
有人能告诉我如何解决这个问题,为什么会发生这种情况。谢谢!
bla的内容是什么? – Maciej
您需要复制'i'并将副本传递给线程函数。 –