首页 > 代码库 > 所有子线程全部结束的判断

所有子线程全部结束的判断

  多线程编程常遇到,主线程要等所有子线程全执行完后,主线程才开工的情况。

如 何判断 所有子线程都执行结束:

方法一:

          主线程中设静态变量,标识活动线程数。动启一个子线程时,活动线程数递增1。当活动结束时,活动线程数减1.

 

方法二:

        把所有的子线程放到列表中,再去判断每一个线程状态。

  List<Thread> arr = new List<Thread>();
  for (int i =0; i <90; i=i+5) //循环创建线程
{
Thread myThread =new Thread(delegate() {catchdate(i,key);});
myThread.Start();
     arr.Add(myThread);
}

  foreach(Thread t in arr){
    while(t.IsAlive){
      Thread.Sleep(10);
    }
  }