Junior — Middle
Kā īstenot gaidīšanu, līdz visas uzdevumu kopas uzdevumi ir pabeigti?
sobes.tech AI
Atbilde no AI
C# valodā, lai gaidītu, kamēr visi uzdevumi no kopuma tiks pabeigti, var izmantot metodi Task.WhenAll. Šī metode pieņem uzdevumu masīvu vai kolekciju un atgriež uzdevumu, kas pabeidzas, kad visi nodotie uzdevumi ir pabeigti.
Piemērs:
Task[] tasks = new Task[]
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
await Task.WhenAll(tasks);
void DoWork(int id)
{
// kāds darbs
Console.WriteLine($"Uzdevums {id} pabeigts");
}
Ja neizmantojat async/await, varat izsaukt Task.WaitAll(tasks), kas bloķē pašreizējo pavedienu līdz visi uzdevumi ir pabeigti.