Sobes.tech
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.