Sobes.tech
Junior — Middle

Cum se poate anula o sarcină aflată în coadă înainte de a fi începută?

sobes.tech AI

Răspuns de la AI

În iOS, pentru a anula o sarcină care se află în coadă, dar încă nu a fost pornită, poți apela metoda cancel() pe obiectul sarcinii (de exemplu, Operation sau URLSessionTask). Dacă sarcina nu a început încă, va fi anulată și nu va fi executată.

Exemplu cu OperationQueue:

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Executarea sarcinii")
}
operationQueue.addOperation(operation)

// Anulează sarcina înainte de a începe
operation.cancel()

Dacă sarcina este deja în curs de execuție, anularea poate să nu o oprească imediat, așa că în interiorul sarcinii trebuie verificat flag-ul isCancelled și încheiată corect.