У меня есть объект, который при инициализации создает последовательный номер GCD, используя dispatch_queue_create
, а также на вызовы освобождения dispatch_free
. Во время жизни объекта в очередь добавляются блоки отправки, однако очередь также останавливается и запускается с использованием dispatch_suspend
и dispatch_resume
.Как я освобождаю и полностью освобождаю очередь Grand Central Dispatch при выпуске?
Проблема заключается в том, что в какой-то момент объект может быть освобожден, а когда он освобожден, я бы, ради удобства, хотел полностью отказаться от очереди отправки и всех объектов dispatch_block_t
, вне зависимости от того, приостановлено.
Как я понимаю, очередь не освобождается, пока не будет «нужна» в том смысле, что она больше не будет сохранена блоками отправки внутри нее. Это заставляет меня полагать, что для освобождения очереди я должен опорожнить ее, разрешив сначала блокировать внутри нее блокировки.
Что является самым простым и надежным способом решения этой проблемы?
Спасибо за ответ! Дополнительные задачи не должны выполняться. Я смотрел дальше в «NSOperationQueue», и он выглядит хорошим кандидатом для решения моей проблемы. – Dan