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

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

   dispatch_async(dispatch_get_main_queue(), ^{


        });
    });

是否可以在一个地方创建backgroundQueue(最佳方法在哪里?)并在以后使用?
我了解系统全局队列,但是排序对我来说很重要。

最佳答案

这样的事情应该可以正常工作:

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;
}

关于ios - 创建一个自定义的顺序全局调度队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18000279/

10-13 08:21