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.