Thread[] threads = new Thread[12];
int temp;
//_stopRequest = false;
for (int i = 0; i < threads.Length - 1; i++)
{
temp = i;
threads[temp] = new Thread(new ThreadStart(() => test(test1[temp],"start", temp)));
threads[temp].Start();
//threads[temp].Join();
}
for(int i=0; i<threads.Length-1; i++)
{
threads[i].Join();
}
任何人都可以解释我
答案 0 :(得分:3)
不,调用Start()时会启动线程。
如果你在Start()之后立即调用Join()(注释掉的代码),每个线程都将被启动,然后当前线程的执行将停止,直到第一个线程停止。所以它实际上就是一个单一的线程。
现在代码的方式,所有线程都被启动,然后当前线程等待所有已启动的线程完成。