Sobes.tech
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ń.