Sobes.tech
Junior — Middle

Как да реализираме изчакването за завършване на всички задачи от набор задачи?

sobes.tech AI

Отговор от 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($"Задача {id} завърши");
}

Ако не използвате async/await, можете да извикате Task.WaitAll(tasks), което блокира текущия поток, докато всички задачи не приключат.