Sobes.tech
Junior — Middle

Jak można anulować wykonanie zadania zaplanowanego w GCD?

sobes.tech AI

Odpowiedź od AI

В GCD (Grand Central Dispatch) отменить выполнение задачи можно, если использовать DispatchWorkItem. Создавая задачу через DispatchWorkItem, можно вызвать метод cancel() до её выполнения.

Пример:

let workItem = DispatchWorkItem {
    print("Выполнение задачи")
}

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

// Отмена задачи
workItem.cancel()

Важно: отмена не прерывает уже начавшуюся задачу, а лишь помечает её как отменённую. Внутри кода задачи можно проверять свойство isCancelled и корректно завершать выполнение.