C # adicionar resultados de métodos assíncronos quando todos terminar
Eu tenho um método assíncrono que recebe umList<long>
de identificações de componentes para uma identificação de carro. Quero obter identificações de componentes para várias centenas de carros de forma assíncrona, então escrevi o método abaixo. Meu objetivo é realmente somar os resultados de todosGetAllComponentIdsForCar
tarefas e retorne-as do método abaixo.
public async Task<List<long>> GetListOfComponentIds(List<long> carIds)
{
List<Task> tasksList = new List<Task>();
foreach (var carId in carIds)
{
Task<List<long>> getComponentIds = GetAllComponentIdsForCar(carId);
tasksList.Add(getComponentIds);
}
await Task.WhenAll(tasksList);
//List<long> sumOfAllTaskResults...or array...or something
}
Como eu faço isso?
Nota - Estou procurando algo semelhante ao angularq.all que simplesmente retorna uma matriz de todos os resultados da tarefa (/ promessa) ao terminar.
Eu consegui obter resultados de tarefas assíncronas em C # antes, mas isso envolvia tornar uma matriz o comprimento das tarefas esperadas e isso parece uma maneira horrível de fazê-lo.
Tentei ler a documentação e as perguntas da Microsoft aqui, mas tudo o que vejo são argumentos sobre WaitAll vs WhenAll.
Editar: