我需要创建两个同步工作的后台进程的队列。
我尝试使用此代码但没有得到它。我的错误在哪里?
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//block1
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
//block2
});
});
最佳答案
如果我理解你的问题,如果你希望你的 block 同步运行,你需要创建一个串行队列:
dispatch_queue_t queue = dispatch_queue_create("queue-name", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
// first block
});
dispatch_async(queue, ^{
// second block
});
这两个 block 都将在一些未命名的后台线程上运行,但它们将同步运行。第一个 block 将在第二个 block 开始之前完成执行。
您可能不想使用后台优先级。该队列将在默认优先级全局队列的支持下运行,这几乎肯定是您想要的。
关于ios - 2个后台进程队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24116378/