Sobes.tech
Junior — Middle

Cum se poate anula executarea unei sarcini programate cu DispatchWorkItem?

sobes.tech AI

Răspuns de la AI

Pentru a anula executarea unei sarcini programate cu DispatchWorkItem în iOS, se folosește metoda cancel() pe obiectul DispatchWorkItem în sine.

Exemplu:

let workItem = DispatchWorkItem {
    print("Executarea sarcinii")
}

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

// Anulare sarcină
workItem.cancel()

Dacă sarcina nu a început încă, apelarea cancel() va împiedica executarea acesteia. În interiorul DispatchWorkItem, se poate verifica starea de anulare cu isCancelled și reacționa corespunzător, de exemplu:

let workItem = DispatchWorkItem {
    if workItem.isCancelled {
        return
    }
    // lucrare principală
}

Astfel, anularea sarcinii se face prin metoda cancel() a obiectului DispatchWorkItem.