小编Buf*_*run的帖子

启动新线程时抛出IndexOutOfRangeException

当我运行以下代码段时,抛出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)

c# lambda multithreading indexoutofboundsexception

1
推荐指数
1
解决办法
458
查看次数