Sobes.tech
Junior — Middle

Comment annuler une tâche en file d'attente avant son démarrage?

sobes.tech IA

Réponse de l'IA

Sur iOS, pour annuler une tâche en attente dans la file d'attente mais pas encore lancée, vous pouvez appeler la méthode cancel() sur l'objet tâche (par exemple, Operation ou URLSessionTask). Si la tâche n'a pas encore commencé, elle sera annulée et ne sera pas exécutée.

Exemple avec OperationQueue :

let operationQueue = OperationQueue()
let operation = BlockOperation {
    print("Exécution de la tâche")
}
operationQueue.addOperation(operation)

// Annuler la tâche avant son lancement
operation.cancel()

Si la tâche est déjà en cours d'exécution, l'annulation peut ne pas l'arrêter immédiatement, il faut donc vérifier le drapeau isCancelled à l'intérieur de la tâche et la terminer proprement.