Я создаю очередь GCD, используя dispatch_queue_t q1 = dispatch_queue_create ("com.s1", NULL);Запуск очереди GCD по потоку
и диспетчеризация блок на него с помощью dispatch_async
делают ли GCD какие-либо гарантии на какую нить он запускается? Я замечаю, что он всегда выполняется в фоновом потоке. Есть ли вероятность, что он может быть выполнен в потоке основного/пользовательского интерфейса. Как GCD решает, какой поток работать?
Это то, что вы сказали. Если вам нужна главная очередь, почему вы не попросили основную очередь? Вы попросили новую очередь, у вас ее есть. Очевидно, что новая очередь не является главной очередью; основная очередь уже существует, поэтому она не может быть новой созданной вами очередью. – matt
Рассмотрите возможность чтения документов: https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html#//apple_ref/doc/uid/TP40008091-CH102-SW1 – matt