当我运行以下代码段时,抛出IndexOutOfRangeException.当抛出异常时,我似乎是2.我的理解是新的线程在i的值被更改之后启动.有没有办法让这段代码免受此类问题的影响?
int x[2] = {1, 3};
int numberOfThreads = 2;
for (int i = 0; i < numberOfThreads; i++)
{
new Thread(() =>
{
DoWork(x[i]);
}).Start();
}
Run Code Online (Sandbox Code Playgroud)