Sobes.tech
Назад к вопросам
Junior — Middle
66

Каким образом можно отменить выполнение задачи, запланированной с помощью DispatchWorkItem?

Компании, где спрашивали
Яндекс МаркетЯндекс Маркет

Ответ от нейросети

sobes.tech 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.