2016-08-31 3 views
0

Мое приложение требует простой параллелизма, поэтому я выбрал GCD для этих предложений. Все отлично работает, я использую одну глобальную очередь с высоким приоритетом (один из стандартных значений Apple). Но я застрял в управлении очередью. Мне нужно принудительное отмена всех процессов в этой очереди после некоторых действий пользователя. Кроме того, можно ли проверить, имеет ли одна из глобальных очередей какие-либо задачи на мгновение? Это поможет мне не заполнять одни и те же задачи, если пользователь попросит.Управление глобальной очередью GCD

+0

Используйте NSOperationQueue, если вам нужно больше контроля. –

+0

Вы должны использовать 'NSOperation' и' NSOperationQueue', которые строятся поверх GCD. 'NSOperation' отменяются, 'NSOperationQueue' имеет' операции' и 'operationCount'. –

+0

@MartinR нет методов GCD для борьбы с ним? В принципе, NSOperationQueue может делать все это? –

ответ

0

Вообще говоря, GCD хорош для легкого управления параллелизмом. Чтобы приостановить очередь отправки, это просто dispatch_suspend(queue) (только очередь, созданная urself, ни главными очередями, ни глобальными очередями). В ур случае, NSOperationQueue больше подходит