Sobes.tech
Junior — Middle

Hogyan lehet megszakítani a DispatchWorkItem segítségével ütemezett feladat végrehajtását?

sobes.tech MI

Válasz az MI-től

Az iOS-ban a DispatchWorkItem segítségével ütemezett feladat törléséhez a cancel() metódust kell használni a DispatchWorkItem objektumon.

Példa:

let workItem = DispatchWorkItem {
    print("Feladat végrehajtása")
}

DispatchQueue.global().async(execute: workItem)

// Feladat törlése
workItem.cancel()

Ha a feladat még nem kezdődött el, a cancel() hívás megakadályozza annak végrehajtását. A DispatchWorkItem belsejében ellenőrizheti a törlés állapotát az isCancelled segítségével, és ennek megfelelően reagálhat, például:

let workItem = DispatchWorkItem {
    if workItem.isCancelled {
        return
    }
    // fő munka
}

Így a feladat törlése a DispatchWorkItem objektum cancel() metódusával történik.