Sobes.tech
Junior — Middle

¿Cómo implementar la espera a que finalicen todas las tareas de un conjunto de tareas?

sobes.tech AI

Respuesta de la IA

En C#, para esperar a que finalicen todas las tareas de un conjunto, se puede usar el método Task.WhenAll. Este método acepta un array o colección de tareas y devuelve una tarea que se completa cuando todas las tareas pasadas como argumento han finalizado.

Ejemplo:

Task[] tasks = new Task[]
{
    Task.Run(() => DoWork(1)),
    Task.Run(() => DoWork(2)),
    Task.Run(() => DoWork(3))
};

await Task.WhenAll(tasks);

void DoWork(int id)
{
    // algún trabajo
    Console.WriteLine($"Tarea {id} completada");
}

Si no estás usando async/await, puedes llamar a Task.WaitAll(tasks), que bloquea el hilo actual hasta que todas las tareas hayan finalizado.