DispatchWorkItem представляет собой блок кода, который можно спланировать для выполнения в очереди диспетчеризации, и при этом его можно отменить до его фактического выполнения.
Отмена реализована через флаг внутри DispatchWorkItem. Механизм отмены коопративный: DispatchWorkItem сам должен регулярно проверять свой статус отмены.
При вызове метода cancel() у DispatchWorkItem, устанавливается флаг отмены. Фактическое прерывание выполнения происходит только в том случае, если внутри блока кода DispatchWorkItem выполняется проверка этого флага с помощью свойства isCancelled.
Пример использования:
swift
Ключевые моменты:
isCancelled внутри блока.DispatchWorkItem может быть поставлен в очередь, но его блок не будет выполнен, если isCancelled будет проверен до начала выполнения.cancel() на уже выполненном или отмененном DispatchWorkItem не имеет эффекта.Свойства:
| Свойство | Тип | Описание |
|---|---|---|
isCancelled | Bool | Возвращает true, если работа отменена. |