Dans de nombreux endroits de mon application, j'utilise le code suivant pour effectuer des tâches d'arrière-plan et informer le fil principal:
dispatch_queue_t backgroundQueue = dispatch_queue_create("dispatch_queue_#1", 0);
dispatch_async(backgroundQueue, ^{
dispatch_async(dispatch_get_main_queue(), ^{
});
});
Est-il possible de créer une analyse au même endroit (où est le meilleur moyen?) Et l'utiliser plus tard? Je connais la file d'attente globale du système, mais la commande est importante pour moi.
Quelque chose comme ça devrait fonctionner bien:
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;
}
Vous pouvez également nous allouer des opérations de NsoperationQue et de pousser. Pour vous assurer que les opérations ne manquent pas d'ordre, vous pouvez définir ISCONCURRENT à NO.
queue = dispatch_queue_create("com.something.myapp.backgroundQueue", 0);
La file d'attente série est précédente, si vous souhaitez créer une file d'attente simultanée, vous pouvez utiliser DisPatch_Queue_ConCurrent.
Dans iOS 5 et plus tard, vous pouvez vous créer vous-même des files d'attente de répartition simultanées en spécifiant Dispatch_Queue_ConCurrent comme type de file d'attente.
dispatch_queue_t queue = dispatch_queue_create("downLoadAGroupPhoto",
DISPATCH_QUEUE_CONCURRENT);