创建自定义顺序全局调度队列

pvl*_*spk 22 objective-c grand-central-dispatch ios

在我的应用程序的许多地方,我使用下一个代码来执行后台任务并通知主线程:

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

   dispatch_async(dispatch_get_main_queue(), ^{


        });
    });
Run Code Online (Sandbox Code Playgroud)

是否可以在一个地方创建一个backgroundQueue(哪种方式最好?)并在以后使用它?我知道系统全局队列,但订购对我来说很重要.

Cat*_*Man 39

像这样的东西应该工作正常:

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;
}
Run Code Online (Sandbox Code Playgroud)