Junior — Middle
Lehetséges párhuzamosan végrehajtani két aszinkron módszert, majd egy harmadik módszer várakozását követően folytatni a további műveleteket?
sobes.tech MI
Válasz az MI-től
Igen, iOS-en lehetőség van két aszinkron módszer párhuzamos végrehajtására, majd egy harmadik várakozására, és ezután a végrehajtás folytatására.
Egy kényelmes módszer a GCD (Grand Central Dispatch) DispatchGroup-jének használata. Példa Swift-ben:
let group = DispatchGroup()
// Az első két aszinkron módszer párhuzamos indítása
group.enter()
asyncMethod1 {
// 1. feladat befejezése
group.leave()
}
group.enter()
asyncMethod2 {
// 2. feladat befejezése
group.leave()
}
// Amikor mindkét feladat befejeződött, indítjuk a harmadikat
group.notify(queue: .main) {
asyncMethod3 {
// A harmadik után folytatjuk
print("Minden művelet befejeződött")
}
}
Így a DispatchGroup lehetővé teszi több aszinkron művelet befejezésének nyomon követését, és csak azok befejezése után hajtja végre a következő lépést.