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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

В 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), который блокирует текущий поток до завершения всех задач.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку