создать пользовательскую последовательную глобальную диспетчерскую очередь

Во многих местах моего приложения я использую следующий код для выполнения фоновых задач и уведомляю главный поток:

dispatch_queue_t backgroundQueue = dispatch_queue_create("dispatch_queue_#1", 0); dispatch_async(backgroundQueue, ^{ dispatch_async(dispatch_get_main_queue(), ^{ }); }); 

Возможно ли создать backgroundQueue в одном месте (где наилучшим образом?) И использовать его позже? Я знаю о системной глобальной очереди, но для меня важна упорядоченность.

  • Как загрузить веб-изображения в кеше перед отображением с помощью SDWebimage?
  • Повторное использование UITableViewCell с GCD
  • dispatch_group_notify не ждет одного dispatch_group_async
  • Как я повторно повторяю инструкции dispatch_after?
  • Оптимизировать код без удаления блокировки потока
  • Как узнать, когда в iOS выполняются параллельные HTTP-запросы?
  • Swift: могу ли я добавить и вычесть переменные `dispatch_time_t`?
  • Как правильно использовать dispatch_sync?
  • 4 Solutions collect form web for “создать пользовательскую последовательную глобальную диспетчерскую очередь”

    Что-то вроде этого должно работать нормально:

     dispatch_queue_t backgroundQueue() { static dispatch_once_t queueCreationGuard; static dispatch_queue_t queue; dispatch_once(&queueCreationGuard, ^{ queue = dispatch_queue_create("com.something.myapp.backgroundQueue", 0); }); return queue; } 

    Вы также можете использовать NSOperationQueue и нажимать на него операции. Чтобы убедиться, что операции не исчерпаны, вы можете установить isConcurrent равным NO.

     queue = dispatch_queue_create("com.something.myapp.backgroundQueue", 0); 

    Предшествующая очередь представляет собой последовательную очередь, если вы хотите создать параллельную очередь, вы можете использовать DISPATCH_QUEUE_CONCURRENT.

    В iOS 5 и более поздних версиях вы можете создавать параллельные очереди отправки самостоятельно, указав DISPATCH_QUEUE_CONCURRENT в качестве типа очереди.

     dispatch_queue_t queue = dispatch_queue_create("downLoadAGroupPhoto", DISPATCH_QUEUE_CONCURRENT); 
      dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //back ground thread dispatch_async( dispatch_get_main_queue(), ^{ // main thread }); }); 
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.