Junior — Middle
Como implementar a espera pela conclusão de todas as tarefas de um conjunto de tarefas?
sobes.tech IA
Resposta da IA
Em C#, para esperar que todas as tarefas de um conjunto terminem, pode usar o método Task.WhenAll. Este método aceita um array ou coleção de tarefas e devolve uma tarefa que é concluída quando todas as tarefas passadas como argumento terminam.
Exemplo:
Task[] tasks = new Task[]
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
await Task.WhenAll(tasks);
void DoWork(int id)
{
// algum trabalho
Console.WriteLine($"Tarefa {id} concluída");
}
Se não estiver a usar async/await, pode chamar Task.WaitAll(tasks), que bloqueia o thread atual até que todas as tarefas terminem.