Junior — Middle
Comment implémenter l'attente de la fin de toutes les tâches d'un ensemble de tâches?
sobes.tech IA
Réponse de l'IA
En C#, pour attendre la fin de toutes les tâches d'un ensemble, vous pouvez utiliser la méthode Task.WhenAll. Elle prend un tableau ou une collection de tâches et retourne une tâche qui se termine lorsque toutes les tâches passées en paramètre sont terminées.
Exemple :
Task[] tasks = new Task[]
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
await Task.WhenAll(tasks);
void DoWork(int id)
{
// un travail quelconque
Console.WriteLine($"Tâche {id} terminée");
}
Si vous n'utilisez pas async/await, vous pouvez appeler Task.WaitAll(tasks), qui bloque le thread actuel jusqu'à ce que toutes les tâches soient terminées.