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