grand-central-dispatch- все статьи тега


Как создать очередь отправки в Swift 3

в Swift 2 мне удалось создать очередь со следующим кодом: let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT) но это не компилируется в Swift 3. каков предпочтительный способ написать это в Swift 3? ...

Ожидание выполнения двух асинхронных блоков перед запуском другого блока

при использовании GCD мы хотим подождать, пока не будут выполнены два асинхронных блока, прежде чем переходить к следующим шагам выполнения. Каков наилучший способ сделать это? мы пробовали следующее, Но это, кажется, не работает: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block1 }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block2 }); // wait until both the block1 and block2 are done before start block3 ...

Разница между dispatch async и dispatch sync в последовательной очереди?

Я создал последовательную очередь, как это: dispatch_queue_t _serialQueue = dispatch_queue_create("com.example.name", DISPATCH_QUEUE_SERIAL); в чем разница между dispatch_async называли dispatch_async(_serialQueue, ^{ /* TASK 1 */ }); dispatch_async(_serialQueue, ^{ /* TASK 2 */ }); и dispatch_sync называется так в этой последовательной очереди? dispatch_sync(_serialQueue, ^{ /* TASK 1 */ }); dispatch_sync(_serialQueue, ^{ /* TASK 2 */ }); Я понимаю, что, независимо от того, как ...

В чем разница между performSelectorOnMainThread и dispatch async в основной очереди?

у меня возникли проблемы с изменением представления внутри потока. Я попытался добавить подвида, но это заняло около 6 или более секунд, чтобы отобразить. Я, наконец, получил его работу, но я не знаю, как именно. Поэтому мне было интересно, почему это сработало и в чем разница между следующими методами: //this worked -added the view instantly dispatch_async(dispatch_get_main_queue(), ^{ //some UI methods ej [view addSubview: otherView]; } //this took around 6 or more seconds to display ...