wpf - 如果 WPF 应用程序强制关闭或崩溃,则处理 WPF 关闭事件

标签 wpf

我有一台名为 GameServer 的服务器,它一直在运行。 并且不止一个 ClientApplication 在不同的不同机器上运行。

当用户登录到服务器时,我在登录用户的基础上将一些数据保存到服务器,注销后我对数据库以及我为登录用户对服务器所做的实例进行了一些更改。

但是如果用户机器强行关闭或者客户端应用程序发生了一些非常糟糕的事情,那么用户如何强制完全关闭客户端应用程序。

所以当时我想处理一个,即使在我可以调用游戏服务器并可能对服务器进行更改的情况下。

how to know the application is shutting down

上面的链接我看到了,但它会用于正式结束事件。

最佳答案

您必须在应用程序崩溃时处理 Application_DispatcherUnhandledException,在发生未处理时处理 CurrentDomain_UnhandledException。

private void Application_DispatcherUnhandledException(object sender,DispatcherUnhandledExceptionEventArgs e)
{
    if(ExceptionView != null)
        ExceptionView.ErrorLoger(e.Exception);
   e.Handled = true;
}


void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    var ex = e.ExceptionObject as Exception;
    if(ExceptionView != null)
        ExceptionView.ErrorLoger(ex);
}

并在 App.XAML 中使用 Application_DispatcherUnhandledException 处理程序。

比如:- DispatcherUnhandledException="Application_DispatcherUnhandledException"

关于wpf - 如果 WPF 应用程序强制关闭或崩溃,则处理 WPF 关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19217910/

相关文章:

c# - 如何防止文本框的宽度超出其容器?

wpf - 我应该使用MVVM还是仅使用ContentControl加载屏幕?

c# - 绑定(bind)到 ObservableCollection<string>

WPF:将 DataGrid 放入 ComboBox

保存前 WPF 数据绑定(bind)

c# - 如何使用 C# 仅从 WPF 日期选择器保存日期?

c# - 类库项目中的 .NET 设置文件

c# - GUI 启动时的控制台 "Hangs"

c# - 如何找出选择了哪个按钮?

wpf - 如何将整个对象绑定(bind)到 XAML 中的控件