怎样判断线程是否结束?--在线等待
比如:我开10个线程,怎样判断这10个线程已经都全部结束?
------解决方案--------------------bool flag=false; 
 List <Thread>  array=new List <Thread> (); 
 //添加Threads 
 for(int i=0;i <array.Length;i++) 
 { 
   if(array[i]!=null) 
      { 
         flag=true;//没有结束 
         Break; 
       } 
 }   
 if(flag==false) 
 { 
  //全部结束 
 } 
 else 
 { 
  //未结束 
 } 
------解决方案--------------------1 全局变量 
   设置变量值 
   循环检查   
 2 
  System.Threading.ManualResetEvent e = new System.Threading.ManualResetEvent(false); 
  然后把这个e传进线程的方法中,在里面调用e.Set()表示线程结束    
  在线程外用 
  e.WaitOne或者System.Threading.WaitHandle.WaitAll等待
------解决方案--------------------上面代码没验证,小心
------解决方案--------------------http://blog.csdn.net/siyou/archive/2006/12/22/1453047.aspx   
 用这个吧,前面加一个FOR就可以了
------解决方案--------------------附加一句,一般判断线程都是这样子的   
 1、把线程的内容用类来封装,然后用xx.yy启动线程 
 2、在类的开头有一启动public变量,例如:treadalive=true,到结束的时候,treadalive=false 
 3、在主线程用xx.yy.变量来判断线程是否结束
------解决方案--------------------有很多办法啊,最常见的就是设置标志,比如   
 SortedList <string,bool>  tListTag;   
 开跑的时候设定一个名字Thread.Name,然后在结束的时候,用   
 lock (tListTag) 
 { 
 tListTag[Thread.CurrentThread.Name] = false; 
 } 
 只要是false的,都是已经跑完的
------解决方案--------------------线程.IsAlive
------解决方案--------------------回调函数
------解决方案--------------------计数么   
 开始一个线程就+1   
 结束一个线程就-1   
 MS很多东西都是这么干的
------解决方案--------------------等待信号量System.Threading.WaitHandle.WaitAll好些。