Задача 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 (), я успешно использовал его с другими асинхронными методами).