Приостановка очереди отправки приостанавливает ее целевую очередь?

Я хочу создать две последовательные очереди A и B. Где очередь B является целью очереди A. Я хочу поставить в очередь некоторые блоки на B и приостановить их, пока я не буду готов их выполнить, однако я хочу продолжить выполнение блоков в очереди A.

Если я приостановлю B, это также приостановит его целевую очередь (очередь A) ?

Я считаю, что я хочу запланировать выполнение этих конкретных блоков (в очереди B) на более позднюю (неуказанную) дату, однако я не хочу, чтобы они запускались одновременно (это касается Core Data ^ _ ^) и я не хочу иметь дело с семафорами. Но я хочу, чтобы Очередь A продолжала обрабатывать блоки, а B приостановлена ​​

На случай, если это не ясно, вот пример кода

dispatch_queue_t queueA = dispatch_queue_create("app.queue.A");
dispatch_queue_t queueB = dispatch_queue_create("app.queue.B");

dispatch_set_target_queue( queueB, queueA );

dispatch_suspend( queueB );
/*
*   Add a bunch of blocks to queue B or A 
*   Where the ones added to A should execute immediately
*/


//Wait till blocks on queue A have finished and start up B
dispatch_resume( queueB );

dispatch_release(queueA);
dispatch_release(queueB);
7
задан Mike Abdullah 10 November 2012 в 17:45
поделиться