C#For循环中的多线程是按for循环的顺序施行的吗
C#For循环中的多线程是按for循环的顺序执行的吗?
这样传进多线程的参数i,总是混乱的,感觉好像for中的线程执行不是按循环的顺序执行的。例如第一次循环时new的线程,可能在第二次循环后才执行,这样i的值就是1了,不是第一次循环时的0了。请教大神解决方法?
------解决方案--------------------
在th.Start(i);之后
加上Thread.Sleep(100);
------解决方案--------------------
for (int i = 0; i < 100; i++)
{
Thread th = new Thread(new ParameterizedThreadStart(method));
th.Start(i);
}
这样传进多线程的参数i,总是混乱的,感觉好像for中的线程执行不是按循环的顺序执行的。例如第一次循环时new的线程,可能在第二次循环后才执行,这样i的值就是1了,不是第一次循环时的0了。请教大神解决方法?
------解决方案--------------------
在th.Start(i);之后
加上Thread.Sleep(100);
------解决方案--------------------
for (int i = 0; i < 100; i++)
{
int temp = i;
Thread th = new Thread(new ParameterizedThreadStart(method));
th.Start(temp);
}