多线程编程常遇到,主线程要等所有子线程全执行完后,主线程才开工的情况。
如 何判断 所有子线程都执行结束:
方法一:
主线程中设静态变量,标识活动线程数。动启一个子线程时,活动线程数递增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);
}
}