想象一个 WPF 代码隐藏事件处理程序:
<Button Click="OnButtonClick" />
在 C# 4 中,您可以将处理程序声明为:
private void OnButtonClick(object sender, RoutedEventArgs e) { ... }
在 C# 5 中,您可以声明一个async
处理程序
private async void OnButtonClick(object sender, RoutedEventArgs e) { ... }
那么 WPF 对此做了什么?几分钟的搜索并没有发现任何问题。
似乎可以在await
语句之后执行 UI 更新。这是否意味着任务在 Dispatcher 线程上继续?
如果Task
引发错误,将通过 WPF 引发错误,Dispatcher
还是仅通过TaskScheduler
?
是否还有其他有趣的方面可以很好理解?