我想从启动几个异步执行的方法中返回一个可await
的Task。我该怎么做?
public async Task DoThingsAsync() {
List<Task> tasks = new List<Task>();
tasks.Add(DoAsync());
tasks.Add(DoAsync());
tasks.Add(DoSomethingElseAsync());
return WHAT_CAN_GO_HERE(tasks);
}
从方法中删除async
并返回Task.WhenAll
:的结果
public Task DoThingsAsync() {
List<Task> tasks = new List<Task>();
tasks.Add(DoAsync());
tasks.Add(DoAsync());
tasks.Add(DoSomethingElseAsync());
return Task.WhenAll(tasks);
}
如果实际代码中隐藏着await
,那么您可以将async
和await Task.WhenAll(tasks);
保留在该方法中。然后当然只返回return;
,而不是返回任何内容,因为这就是async Task
(而不是Task<T>
(方法所做的