タスクを待機して task.Wait() を使用することの違いはわかりませんが、最初の MessageDialog.ShowAsync メソッドでは機能しますが、2 つ目の方法では機能しません (2 つの構文は他の非同期メソッドで機能します)。
誰かが私が興味を持っている理由を説明できれば!
// this don't work, no dialog is shown (and UI is block)
var dialog = new MessageDialog("fail");
var task = dialog.ShowAsync().AsTask();
task.Wait();
// this work
var dialog = new MessageDialog("success");
var task = dialog.ShowAsync().AsTask();
await task;
なぜこれをしたいのかと聞かれます.catchブロックでダイアログを表示し(エラーメッセージを表示するため)、catchブロックの後に続行する前にユーザーがダイアログを閉じるのを待つ必要があるためです(はい、できます'catch ブロックで await を使用しませんが、Task.Wait() を使用できます。他の非同期メソッドで正常に使用しました)。