首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2个后台进程的队列

2个后台进程的队列
EN

Stack Overflow用户
提问于 2014-06-09 16:26:57
回答 2查看 36关注 0票数 0

我需要创建队列的2后台进程,将同步工作。

我试着使用这段代码,但没有得到它。我的错误在哪里?

代码语言:javascript
复制
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  //block1
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
    //block2
  });
});
EN

回答 2

Stack Overflow用户

发布于 2014-06-09 16:38:19

如果我理解你的问题,如果你想让你的块同步运行,你需要创建一个串行队列:

代码语言:javascript
复制
dispatch_queue_t queue = dispatch_queue_create("queue-name", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
  // first block
});
dispatch_async(queue, ^{
  // second block
});

这两个块都将在某个未命名的后台线程上运行,但它们将同步运行。第一个块将在第二个块开始之前完成执行。

您可能不想使用后台优先级。这个队列将在默认优先级全局队列的支持下运行,这几乎可以肯定是您想要的。

票数 2
EN

Stack Overflow用户

发布于 2014-06-09 16:58:43

您可以使用同步在单线程中编写代码,这些代码将一个接一个地同步运行。

代码语言:javascript
复制
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...");
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24116378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档