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

解决方案 »

  1.   

    在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选。
    这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作时出现“线程间操作无效: 从不是创建控件的线程访问它”异常。
    为什么.net不让我们跨线程操作控件,这是有好处的。因为如果你的线程多了,那么当两个线程同时尝试将一个控件变为自己需要的状态时,线程的死锁就会发生。但是难道就是因为这个原因,我们就只能让程序卡着么?当然不是,这里教大家一个解决方案:
    一个简单的方法是运用CheckForIllegalCrossThreadCalls,在主窗体的构造函数中加上Control.CheckForIllegalCrossThreadCalls = false; 即可用上述方式,你可以在子线程中调用主程序中后续任务的函数即可.