从库中为当前应用程序调用适当的退出方法?

Calling appropriate Exit method for current application from library?

我为自动更新应用程序创建了一个 class 库。它需要在完成下载更新后终止应用程序。目前,我使用以下代码确定要使用的退出方法。

if (Application.MessageLoop)
{
    Application.Exit();
}
else
{
    Environment.Exit(0);
}

我知道 Environment.Exit(0) 是终止应用程序的残酷方式,并且当应用程序使用 CefSharp 时它不会终止应用程序。当应用程序是 WPF 时,有什么方法可以调用 Application.Current.Shutdown() 吗?

如果您不理解问题,可以查看问题并使用下面的内容完成项目 URL。

https://github.com/ravibpatel/AutoUpdater.NET/issues/11

您应该可以在 WPF class

中输入 this.close();

Is there any way I can call Application.Current.Shutdown() when the application is WPF?

只需检查运行时是否有任何 Application 对象可用:

if (System.Windows.Application.Current != null) //if WPF
    System.Windows.Application.Current.Shutdown();

如果 Application.Current returns 一个 Application 对象,您可以假设您的代码在 WPF 应用程序的上下文中执行,并且您可以安全地调用 Shutdown 方法.