1

私は、2 人のオンライン プレーヤーを含むこのゲームを作成しています。1 人がアプリケーションを終了すると、もう 1 人に通知する必要があります。onsuspend イベントを使用していますが、機能していません。これが私のコードです:

    public MainPage()
    {
        this.InitializeComponent();

        Application.Current.Suspending += Current_Suspending;
        // and a bunch of other stuff
    }

    private async void Current_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e)
    {
        await game.leaveGame();
    }

どんな助けでも大歓迎です。game.leaveGame() 関数が機能することは 100% 確信しています。テスト済みです。

4

1 に答える 1

0

中断イベントから戻るとすぐにアプリケーションが中断されるため、この場合、非同期メソッド game.leaveGame() は終了しません。コードを次のように変更してみてください (game.leaveGame が sync メソッドであると仮定します):

public MainPage()
{
    this.InitializeComponent();

    Application.Current.Suspending += Current_Suspending;
    // and a bunch of other stuff
}

private void Current_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e)
{
    game.leaveGame();
}

アプリケーション ライフサイクルの詳細については、こちらをご覧ください。

于 2013-04-28T21:09:45.427 に答える