Junior — Middle
Hoe kunt u een taak die in de wachtrij staat, annuleren voordat deze wordt gestart?
sobes.tech AI
Antwoord van AI
Op iOS, om een taak te annuleren die in de wachtrij staat maar nog niet is gestart, kun je de methode cancel() aanroepen op het taakobject (bijvoorbeeld Operation of URLSessionTask). Als de taak nog niet is begonnen, wordt deze geannuleerd en niet uitgevoerd.
Voorbeeld met OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Taak wordt uitgevoerd")
}
operationQueue.addOperation(operation)
// Annuleer de taak voordat deze start
operation.cancel()
Als de taak al bezig is, kan annuleren deze mogelijk niet onmiddellijk stoppen, dus binnen de taak moet je de vlag isCancelled controleren en deze correct beëindigen.