class 1
{
  public static void test1()
  {
     
     thead td=new thead(theadtest);
     td.start();
     .......
     .......       //这是方法的内容    若在这里发剩一个异常
     .......
     td.Abort();  //结束线程
      
  }  public  static void theadtest()
  {
     From4 fromtest = new From4();  //这是一个窗体
      fromtest.show();
  }
}//应用的方法
public void test()
{
   try
   {  class1.test1() }
   catche
   {
      ......
   }
}
这样发生异常时候 ,窗体from4 不会关闭,问下 如何才能关闭 td线程生成的窗体

解决方案 »

  1.   

    class 1 

    static td =null;
      public static void test1() 
      { 
        
        td=new thead(theadtest); 
        td.start(); 
        ....... 
        .......      //这是方法的内容    若在这里发剩一个异常 
        ....... 
        td.Abort();  //结束线程 
          
      }   public  static void theadtest() 
      { 
        From4 fromtest = new From4();  //这是一个窗体 
          fromtest.show(); 
      } 
    } //应用的方法 
    public void test() 

      try 
      {  class1.test1() } 
      catche 
      { 
          class1.td.Abort();
      } 

      

  2.   

    想关掉还不容易么,在catch里写一窗体close()不就行了.
      

  3.   

    把td定义成类成员,在异常处理块中
    class 1 

    private thead td;
      public static void test1() 
      { 
        
        td=new thead(theadtest); 
        td.start(); 
        ....... 
        .......      //这是方法的内容    若在这里发剩一个异常 
        ....... 
        td.Abort();  //结束线程 
          
      }   public  static void theadtest() 
      { 
        From4 fromtest = new From4();  //这是一个窗体 
          fromtest.show(); 
      } 
    } //应用的方法 
    public void test() 

      try 
      {  class1.test1() } 
      catche 
      { 
          ...... 
      } 
    finally
    {
    if (td.IsAlive)
                {
                    td.Abort();
                }
    }