Задача MessageDialog не отображается, если я использую Task.Wait () вместо await

Я не знаю разницы между ожиданием задачи и использованием task.Wait (), но для метода MessageDialog.ShowAsync с первым он работает, но не со вторым (в то время как два синтаксиса работают с другими асинхронными методами).

Если кто-нибудь может объяснить, почему мне будет интересно!

// 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 (и да мы не можем использовать await в блоке catch, но мы можем использовать Task.Wait (), я успешно использовал его с другими асинхронными методами).

Ответы на вопрос(2)

Ваш ответ на вопрос