C#中关闭窗体的四种方法

2023-02-07 19:56:28
  1. close():
    指仅关闭当前窗体,如果不是主窗体(包含主线程的窗体,并非MDI窗体)的话,是无法退出整个程序的。如果有托管线程也无法退出。
      此方法会调用 dispose() 方法,所以它会自动的帮我们释放内存,除了以下两种情况:(1)该窗体是多文档应用程序(MDI)的一部分并且此窗体不可见;(2)此窗体是“模态”窗体。
      close() 方法执行的时候会触发两个事件:Form_Closing 和 Form_Closeed 事件,Form_Closing 是在窗体关闭时执行,Form_Closed 是在窗体关闭之后执行,所以如果想取消关闭窗体,可以在 Form_Closing 事件里取消。

  2. Application.Exit():
    强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出。

  3. Application.ExitThread():
    强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题。

  4. System.Environment.Exit(0);
    这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。 参数0:代表程序正常退出;参数1:代表程序非正常退出。

  • 作者:光怪陆离的节日
  • 原文链接:https://blog.csdn.net/weixin_41883890/article/details/125999001
    更新时间:2023-02-07 19:56:28