В WinForms/WPF async/await позволяет ожидать сеть, файл или другую асинхронную операцию, не блокируя UI-поток. Интерфейс продолжает обрабатывать ввод и перерисовку.
Какую прикладную пользу async/await даёт в WinForms/WPF-клиенте?
В WinForms/WPF async/await позволяет ожидать сеть, файл или другую асинхронную операцию, не блокируя UI-поток. Интерфейс продолжает обрабатывать ввод и перерисовку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В WinForms/WPF async/await позволяет ожидать сеть, файл или другую асинхронную операцию, не блокируя UI-поток. Интерфейс продолжает обрабатывать ввод и перерисовку.
В обычном UI-контексте продолжение после await может вернуться в UI-поток, где безопасно обновить элементы интерфейса. Долгое CPU-вычисление от одного async не ускорится: его при необходимости выносят через Task.Run и возвращают только результат.
Нужны состояние загрузки, обработка ошибок, отмена и защита от повторных нажатий. Вызовы .Result или .Wait могут заморозить интерфейс и создать deadlock. Async void допустим для обработчика события, но внутреннюю работу лучше возвращать как Task.