我在主程序判断线程是否结束
这么写对不对啊
 线程里 
   public bool end;
  end= thread.isalive;
 主程序里
      while(true)
     {
        if(end=false)
          {
             ....//线程结束后主程序的任务;
             break;
          }
     }
 高手帮我解决一下

解决方案 »

  1.   

    //如果end==true,你这段代码就死循环了end= thread.isalive;  
    主程序里 
          while(true) 
        { 
            if(end=false) 
              { 
                ....//线程结束后主程序的任务; 
                break; 
              } 
        } 你要这样判断也要把end的付值放到while里面主程序里 
          while(true) 
        { 
            end= thread.isalive;  
            if(end=false) 
              { 
                ....//线程结束后主程序的任务; 
                break; 
              } 
        } 
    建议用一个timer定时进行判断,这样会好些,节约资源
      

  2.   

    不对,应该用信号量using System;
    using System.Collections.Generic;
    using System.Text;namespace ConsoleApplication4
    {
        class Program
        {
            static void Main(string[] args)
            {
                new System.Threading.Thread(new System.Threading.ThreadStart(Do)).Start();
                Console.ReadKey();
                obj.Set();
            }
            static System.Threading.ManualResetEvent obj = new System.Threading.ManualResetEvent(false);
            static void Do()
            {
                obj.Reset();
                while (obj.WaitOne(1000,false)==false)
                {
                    Console.WriteLine("Press any key to quit");
                }
            }
        }
    }
      

  3.   

    线程基本控制参考
    http://blog.csdn.net/jinjazz/archive/2008/06/20/2569254.aspx