3

GameServer と呼ばれるサーバーが 1 つあり、それは継続的に実行されます。複数の ClientApplication が異なるマシンで実行されています。

ユーザーがサーバーにログインしている間、ログインしたユーザーに基づいてサーバーにデータを保存しています。ログアウト後、データベースと、ログインしたユーザーのサーバーに作成したインスタンスにいくつかの変更を加えています。

しかし、ユーザー マシンが強制的にシャットダウンされた場合、またはクライアント アプリケーションに何か非常に悪いことが起こった場合、ユーザーはクライアント アプリケーションを強制的に完全に閉じることができます。

そのため、ゲームサーバーを呼び出してサーバーに変更を加えることができる場合でも、1つを処理したいと考えています。

アプリケーションがシャットダウンしていることを知る方法

上記のリンクは表示されますが、イベントを正常に閉じるために使用されます。

4

1 に答える 1

2

アプリケーションがクラッシュした場合は 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"

于 2013-10-07T06:41:54.677 に答える