更新时间:2023-01-18 14:07:30
Parallel.ForEach
不适用于async
动作,但是您可以启动所有任务,然后使用Task.WhenAll
等待它们全部完成:
Parallel.ForEach
doesn't work with async
actions, but you could start all tasks and then wait for them all to complete using Task.WhenAll
:
[HttpPost]
public async Task<IHttpActionResult> GetAccountsAsync(IEnumerable<int> accountIds)
{
Task<List<AccountDetail>>[] tasks = accountIds.Select(accountId => GetAccountDetailAsync(accountId)).ToArray();
List<AccountDetail>[] results = await Task.WhenAll(tasks);
return Ok(results.SelectMany(x => x).ToList());
}