用户在关闭主窗口时,启动一个子线程做一些清理工作.
由于清理工作时间比较长,所以用子线程来做,不阻塞主线程.
在子线程的清理工作做完,能让它来关闭主线程吗?

解决方案 »

  1.   

    我用了Application.Exit()可以达到此功能,但好象太粗暴了.
      

  2.   

    用form1.close()是可以的,只要不将form1.Dispose()
      

  3.   

    在子线程里form1.close()是可以的,但如果调用this.Form_Closed1(null, null)就不行.这是定义:
    this.Closed += new EventHandler(Form1_Closed); 
    应该是form1.close()可以让系统发出关闭窗口消息,而this.Form_Closed1却没有.
      

  4.   

    可以
    Application.Exit()不粗暴啊~
      

  5.   

    Application.Exit()会强制回收部分可能是系统共用的资源,这些资源是不可见的,所以这并不是一个好的编程习惯
      

  6.   

    同意楼上,Application.Exit(),容易造成系统资源泄露,容易出问题
      

  7.   

    线程发出通知UI线程,去做关闭操作。例如委托之类,参看此例中如何控制进度条窗体,对于你来说可以参照写
    http://blog.csdn.net/knight94/archive/2006/05/27/757351.aspx