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

如果WPF应用程序强制关闭或崩溃,请处理WPF关闭事件,wpf,Wpf,我有一个叫GameServer的服务器,它可以继续运行。 在不同的机器上运行的客户端应用程序不止一个 当用户登录到服务器时,我在登录用户的基础上将一些数据保存到服务器,在注销后,我对数据库以及为登录用户对服务器所做的实例进行了一些更改 但是,如果用户机器强制关闭,或者客户端应用程序发生了一些非常糟糕的事情,那么用户将强制完全关闭客户端应用程序 所以在那个时候我想处理一个,甚至在其中我可以调用游戏服务器并对服务器进行更改 我看到了上面的链接,但它将用于正常关闭事件。当应用程序崩溃时,您必须处理A

我有一个叫GameServer的服务器,它可以继续运行。 在不同的机器上运行的客户端应用程序不止一个

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

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

所以在那个时候我想处理一个,甚至在其中我可以调用游戏服务器并对服务器进行更改


我看到了上面的链接,但它将用于正常关闭事件。

当应用程序崩溃时,您必须处理Application\u DispatcherUnhandledException,当发生Unhandled Exception时,必须处理CurrentDomain\u 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中使用应用程序_dispatchernhandledException处理程序


比如:-DispatcherUnhandledException=“Application\u DispatcherUnhandledException”

什么是ExceptionView?实际上ExceptionView是我的接口属性名,您可以避免它。我只是举个例子。以上两个处理程序都应该在app.XAML.cs中使用。