Environment.Exit 没有关闭[重复]

Posted

技术标签:

【中文标题】Environment.Exit 没有关闭[重复]【英文标题】:Environment.Exit doesn't close [duplicate] 【发布时间】:2019-03-26 11:40:03 【问题描述】:

我有退出命令:

void CloseMethod()

   //Application.Current.Shutdown();
     Environment.Exit(0);

问题是,当我单击按钮时,它会隐藏 GUI,但我仍然看到应用程序在任务管理器中打开,与 Application.Current.Shutdown(); 相同

【问题讨论】:

所以在按钮点击你想关闭应用程序?是Winform吗? @Rahul 它在 wpf 中 @Jan 但是为什么应用程序仍然在 tak manager 中打开??? 抱歉,不知道是WPF。对于 WPF,答案应该是这个:***.com/questions/2820357/… 您确定Task Manager 中显示的进程在您进行最新更改之前不是旧实例吗? 【参考方案1】:

您可能想调用Application.Exit(); 而不是这会终止所有消息循环并关闭所有窗口,从而使您的表单能够执行其清理代码。请参阅Application.Exit 了解更多信息。引用文档

通知所有消息泵它们必须终止,然后关闭 处理完消息后的所有应用程序窗口。

对于 WPF,您应该调用 Application.Current.Shutdown();,但请阅读文档,其中明确指出应该从 Main() 方法调用 Shutdown() 方法,因为这是创建应用程序实例的入口点

【讨论】:

【参考方案2】:

您是否在应用程序中使用任何线程? 如果是这样,请确保在退出应用程序之前停止所有线程。 我通常不喜欢 .abort 命令,但您可以尝试使用

th.Abort(); //th is the name of the thread

在使用 Environment.Exit(0) 之前

【讨论】:

以上是关于Environment.Exit 没有关闭[重复]的主要内容,如果未能解决你的问题,请参考以下文章

WPF关闭应用汇总

C# 彻底关闭程序,包括循环

为啥 Environment.Exit() 不再终止程序?

System.Environment.Exit(0) 不退出程序

在 Environment.Exit() 上捕获异常

Environment.Exit 和 Main 的简单返回 2 之间的区别