为Task.WhenAll()
创建多个任务时的最佳做法是什么?
下面这两个async-await替代方案在性能和/或异常情况下的行为方面有区别吗?
它们都有效,但有什么不同吗?
备选方案1:
private async void Button_Click(object sender, RoutedEventArgs e)
{
// call DoWork() to prepare data
await Task.WhenAll(myObjects.Select(o => Task.Run(() => o.DoWork()));
// update ui ...
}
备选方案2:
private async void Button_Click(object sender, RoutedEventArgs e)
{
// call DoWork () to prepare data - note the async-await around the return Task
await Task.WhenAll(myObjects.Select(async o => await Task.Run(() => o.DoWork()));
// update ui...
}
谢谢。