Junior — Middle
Wie kann man eine Aufgabe, die in der Warteschlange ist, vor ihrem Start abbrechen?
sobes.tech KI
Antwort von AI
Auf iOS kann man eine Aufgabe, die in der Warteschlange steht, aber noch nicht gestartet wurde, durch Aufruf der Methode cancel() am Aufgabenobjekt (z.B. Operation oder URLSessionTask) abbrechen. Wenn die Aufgabe noch nicht begonnen hat, wird sie abgebrochen und nicht ausgeführt.
Beispiel mit OperationQueue:
let operationQueue = OperationQueue()
let operation = BlockOperation {
print("Ausführung der Aufgabe")
}
operationQueue.addOperation(operation)
// Aufgabe vor ihrem Start abbrechen
operation.cancel()
Wenn die Aufgabe bereits läuft, kann das Abbrechen sie möglicherweise nicht sofort stoppen, daher sollte innerhalb der Aufgabe das Flag isCancelled überprüft und die Arbeit ordnungsgemäß beendet werden.