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

时间:2013-10-07 05:53:54

标签: wpf

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

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

但有些如果用户机器强行关闭或某些事情真的发生在客户端应用程序中,那么用户强制完全关闭客户端应用程序。

所以那个时候我想要一个人,即使我可以打电话给游戏服务器,也可以改变服务器。

how to know the application is shutting down

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

1 个答案:

答案 0 :(得分:1)

当应用程序崩溃时你必须处理Application_DispatcherUnhandledException,当发生Unhandled时你必须处理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处理程序。

like: - DispatcherUnhandledException =“Application_DispatcherUnhandledException”