У меня есть несколько задач, которые отправляются в последовательные очереди, и особенно некоторые из них, которые отправляются в группу. После отправки этих задач я хотел бы дать пользователю возможность отменить их, даже если они уже выполняются.
Я не могу найти способ отменить поставленную в очередь задачу, тогда я подумал, что мог бы создать логический флаг, называемый, например, quitRender и test, чтобы увидеть, является ли этот флаг истинным, и выйти из рендера, но это не работает, и мой Объяснение таково: флаг quitRender имеет значение «НЕТ», когда задачи запускаются, так как они выполняются в блоках, и блоки замораживают значения, какими они были при запуске, блоки не увидят изменения и никогда не выйдут.
Затем я попробовал другой подход: я создаю метод, подобный
- (BOOL) cancelRender {
return quitRender;
}
, который будет запускать и отправлять блоку текущее значение переменной, но, очевидно, блоки по-прежнему будут видеть NO для quitRender.
Я что-то упустил? Как мне сделать эту работу?
спасибо.