[英]close entire form in winforms using c#
关闭应用程序时,关闭整个Windows应用程序窗体的最佳方法是什么? 显然,退出应用程序后,该应用程序仍在运行。
如果在关闭应用程序的主窗体后,该应用程序仍在运行,则您有一些线程在执行该任务而无法完成。 您应该确定并确保它正常关闭。 完成此操作后,关闭主窗体时,您的申请过程应该会顺利进行,而无需携带武器并进行射击。
根据巴厘岛的评论,使用:
Application.Exit()
有关详细信息,请参见http://msdn.microsoft.com/zh-cn/library/ms157894.aspx (重点是我的):
Exit方法停止所有线程上所有正在运行的消息循环, 并关闭应用程序的所有窗口 。 此方法不一定强制应用程序退出。 通常从消息循环内调用Exit方法,并强制Run返回。 要仅退出当前线程的消息循环,请调用ExitThread。
不是关闭程序的最漂亮方法,但是如果您只想完全结束该过程,则只需Process.Kill()
本身运行Process.Kill()
。 如果有任何未完成的线程正在运行,最好先优雅地关闭它们。 如果您不关心尚未完成的事情,那么可以解决这个问题:
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName.Contains("appname"))
{
p.Kill();
}
}
理想情况下,按照Fredkrik的回答,您应该找出为什么您的应用仍然悬而未决。 但是,如果要强制退出应用程序,则需要使用Environment.Exit 。 Application.Exit仅退出当前的消息泵(尽管可以肯定的是,除非调用了Application.Run多次,否则您只能打开它)。
从docco:
Environment.Exit方法终止此过程,并为底层操作系统提供指定的退出代码。
Application.Exit方法通知所有消息泵必须终止,然后在处理完消息后关闭所有应用程序窗口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.