1

問題は、むしろベストプラクティスに関するものです。OnNavigatedToがオーバーライドされたPhoneApplicationPageがあり、そこで非同期呼び出しを待ちたいと思います。呼び出しが待たれると、ナビゲーションはどうなりますか?私の想定では、待機中の呼び出しが戻るまでナビゲーションは完了しません。ひいては、それは呼び出しの非同期性を役に立たなくします。それは本当ですか?

もう1つは、OnNavigatedToがvoidを返すため、これをTaskに変更できないことです。これは、非同期メソッド内の例外がアプリを完全にクラッシュさせることを意味します。もちろん、例外をキャッチすることは可能ですが、それが良いアプローチであるかどうかについても心配しています。

要約すると、OnNavigatedToでasync / awaitを使用している人はいますか?あなたの経験は何ですか?友達や同僚に勧める可能性はどのくらいありますか?:)

4

1 に答える 1

2

まず第一に、私の答えは WP8 ではなく WP7 + Async CTP に関するものです。ただし、これがWP8で変更されたとは思えません。

私の仮定は、待機中の呼び出しが戻るまでナビゲーションは完了しないということです

間違った仮定。ナビゲーションは最初の待機で完了します。

私の非同期メソッド内の例外は、アプリを完全にクラッシュさせます

必ずしも。イベントをサブスクライブしTaskScheduler.UnobservedTaskException、 を呼び出すことによって例外を観察済みとしてマークできますUnobservedTaskExceptionEventArgs.SetObserved。しかし、私はむしろ例外をキャッチしたい..

友人や同僚に勧める可能性はどのくらいありますか?

自分が何をしているのかを理解していれば、問題なく動作します。ただし、非同期メソッドが終了するずっと前にナビゲーションが完了するため、このアプローチにはほとんど価値がありません。

PS関連トピックに関する私の質問「WP7同期Webリクエスト」-回答はありません:-(

于 2013-02-04T16:34:39.803 に答える