我在一个循环中启动 4 个线程。每个线程获取对数组元素的引用以写入结果。
但是在我创建每个线程的那一行,我得到一个System.IndexOutOfRangeException
. 我很惊讶索引“i”超出了范围。
这是一个例子:
void ThreadsStarter()
{
double[] data = new double[4];
for(int i = 0; i < 4; i++)
{
Thread my_thread = new Thread(() => Work(data[i]));
my_thread.Start();
}
}
void Work(double data)
{
}
为什么会这样?