Представьте, что обработчик событий с кодом для кода WPF:
<Button Click="OnButtonClick" />
В С# 4 вы объявите своего обработчика как:
private void OnButtonClick(object sender, RoutedEventArgs e) { ... }
В С# 5 вы можете объявить обработчик async
private async void OnButtonClick(object sender, RoutedEventArgs e) { ... }
Итак, что делает WPF с этим? Несколько минут поиска ничего не изменили.
Кажется, что возможно выполнять обновления пользовательского интерфейса после операторов await
. Означает ли это, что задача продолжается в потоке диспетчера?
Если значение Task
вызвало ошибку, оно было бы поднято через WPF Dispatcher
или только через TaskScheduler
?
Есть ли другие интересные аспекты, которые могут быть приятными для понимания?