[英]Queue of 2 background processes
我需要创建2个后台进程的队列,这些队列将同步工作。
我尝试使用此代码,但没有得到。 我的错误在哪里?
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//block1
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
//block2
});
});
如果我理解您的问题,那么如果您希望块同步运行,则需要创建一个串行队列:
dispatch_queue_t queue = dispatch_queue_create("queue-name", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
// first block
});
dispatch_async(queue, ^{
// second block
});
这两个块都将在一些未命名的后台线程上运行,但是它们将同步运行。 第一个块将在第二个块开始之前完成执行。
您可能不想使用背景优先级。 该队列将由默认优先级全局队列支持,这几乎可以肯定是您想要的。
您可以在具有同步的单线程中编写代码,这些代码将一个接一个地同步运行。
dispatch_queue_t queue = dispatch_queue_create("queue-name", DISPATCH_QUEUE_SERIAL);
dispatch_sync(queue, ^{
// first block
for (int i = 0; i < 100; i++)
{
NSLog(@"value = %d",i);
sleep(1);
}
NSLog(@"Hi...");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.