Sobes.tech
Back to questions
Junior — Middle
64

Каким образом реализовать ожидание завершения всех задач из набора задач?

Companies where asked
AndersenAndersen

Answer from AI

sobes.tech AI

В C# для ожидания завершения всех задач из набора можно использовать метод Task.WhenAll. Он принимает массив или коллекцию задач и возвращает задачу, которая завершается, когда все переданные задачи завершены.

Пример:

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

await Task.WhenAll(tasks);

void DoWork(int id)
{
    // какая-то работа
    Console.WriteLine($"Task {id} completed");
}

Если вы не используете async/await, можно вызвать Task.WaitAll(tasks), который блокирует текущий поток до завершения всех задач.