使用c关闭winforms中的整个表单

本文关键字:表单 关闭 winforms 使用 | 更新日期: 2023-09-27 18:21:20

当应用程序关闭时,关闭整个windows应用程序窗体的最佳方式是什么?显然,在我退出应用程序之后,应用程序仍在运行。

使用c关闭winforms中的整个表单

如果在应用程序的主窗体关闭后应用程序仍在运行,则会有一些线程未完成其工作。你应该识别它,并确保它优雅地关闭。完成后,当你关闭主窗体时,你的申请过程应该会很顺利,而不需要拿出武器射击。

根据巴厘岛的评论,使用:

Application.Exit()

详细信息,请访问http://msdn.microsoft.com/en-us/library/ms157894.aspx(强调矿):

Exit方法停止所有线程上所有正在运行的消息循环和关闭应用程序的所有窗口。此方法不必须强制应用程序退出。Exit方法是通常从消息循环中调用,并强制Run返回。要仅退出当前线程的消息循环,请调用ExitThread。

这不是关闭程序的最漂亮的方法,但如果您只是想完全结束进程,只需在其自身上运行Process.Kill()即可。如果有任何正在运行的线程尚未完成,那么最好先优雅地关闭它们。如果你不在乎什么还没有完成这将做的把戏:

foreach (Process p in Process.GetProcesses()) 
{ 
    if (p.ProcessName.Contains("appname")) 
    { 
        p.Kill();
    } 
}

理想情况下,您应该根据Fredkrik的回答找出为什么您的应用程序仍然存在。但是,如果您想强制退出应用程序,Environment.exit是您想要的。Application.Exit只退出当前的消息泵(尽管无可否认,除非您调用Application.Exite多次,否则您只能打开)。

来自docco:

环境退出方法终止此进程,并向底层操作系统提供指定的退出代码。

应用程序退出方法通知所有消息泵必须终止,然后在处理完消息后关闭所有应用程序窗口。