Junior — Middle
Come si può annullare l'esecuzione di un task pianificato con DispatchWorkItem?
sobes.tech AI
Risposta dell'AI
Для отмены выполнения задачи, запланированной с помощью DispatchWorkItem в iOS, используется метод cancel() у самого объекта DispatchWorkItem.
Пример:
let workItem = DispatchWorkItem {
print("Выполнение задачи")
}
DispatchQueue.global().async(execute: workItem)
// Отмена задачи
workItem.cancel()
Если задача еще не начала выполняться, вызов cancel() предотвратит её выполнение. Внутри самого DispatchWorkItem можно проверять состояние отмены с помощью isCancelled и корректно реагировать, например:
let workItem = DispatchWorkItem {
if workItem.isCancelled {
return
}
// основная работа
}
Таким образом, отмена задачи осуществляется через метод cancel() объекта DispatchWorkItem.