【问题标题】:Handle the WPF Close event if WPF application Shut down Forcefully or Crashed如果 WPF 应用程序强制关闭或崩溃,则处理 WPF 关闭事件
【发布时间】:2015-07-03 07:33:04
【问题描述】:

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

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

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

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

how to know the application is shutting down

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

【问题讨论】:

    标签: wpf


    【解决方案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 处理程序。

    喜欢:- DispatcherUnhandledException="Application_DispatcherUnhandledException"

    【讨论】:

    • 什么是异常视图?
    • 实际上 ExceptionView 是我的接口属性名称,你避免它。我只是举例。您应该在 app.XAML.cs 中使用这两个处理程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多