Junior — Middle
Jak zaimplementować oczekiwanie na zakończenie wszystkich zadań z zestawu zadań?
sobes.tech AI
Odpowiedź od AI
W C#, aby oczekiwać na zakończenie wszystkich zadań z zestawu, można użyć metody Task.WhenAll. Przyjmuje ona tablicę lub kolekcję zadań i zwraca zadanie, które kończy się, gdy wszystkie przekazane zadania zostaną zakończone.
Przykład:
Task[] tasks = new Task[]
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
await Task.WhenAll(tasks);
void DoWork(int id)
{
// jakaś praca
Console.WriteLine($"Zadanie {id} zakończone");
}
Jeśli nie używasz async/await, możesz wywołać Task.WaitAll(tasks), które blokuje bieżący wątek do czasu zakończenia wszystkich zadań.