Junior — Middle
Kaip įgyvendinti laukiant visų užduočių iš užduočių rinkinio pabaigą?
sobes.tech AI
Atsakymas iš AI
C# kalboje, norint laukti, kol baigsis visi užduočių rinkinys, galite naudoti metodą Task.WhenAll. Šis metodas priima užduočių masyvą arba kolekciją ir grąžina užduotį, kuri užbaigiama, kai baigiamos visos perduotos užduotys.
Pavyzdys:
Task[] tasks = new Task[]
{
Task.Run(() => DoWork(1)),
Task.Run(() => DoWork(2)),
Task.Run(() => DoWork(3))
};
await Task.WhenAll(tasks);
void DoWork(int id)
{
// tam tikras darbas
Console.WriteLine($"Užduotis {id} baigta");
}
Jei nenaudojate async/await, galite iškviesti Task.WaitAll(tasks), kuris blokuoja dabartinį srautą iki visos užduoties pabaigos.