【问题标题】:GCD global queue controlGCD 全局队列控制
【发布时间】:2016-08-31 09:33:10
【问题描述】:

我的应用程序需要一些简单的并发性,因此我为这些提议选择了 GCD。 一切都很好,我使用一个具有高优先级的全局队列(Apple 的默认值之一)。但我被困在队列控制中。在某些用户操作后,我需要强制取消此队列中的所有进程。 此外,是否可以暂时检查其中一个全局队列是否有任何任务?如果用户要求,这将帮助我不填充相同的任务。

【问题讨论】:

  • 如果您需要更多控制,请使用 NSOperationQueue。
  • 您应该使用构建在 GCD 之上的 NSOperationNSOperationQueueNSOperations 是可取消的,NSOperationQueue 具有 operationsoperationCount 属性。
  • @MartinR 没有GCD方法来处理吗?基本上,NSOperationQueue 可以做所有这些事情?
  • @ImanouPetit GCD 有 4 个默认队列。我怎样才能访问其中之一?任何标识符?我看到很容易访问主要的 - NSOperationQueue.mainQueue()

标签: swift concurrency queue grand-central-dispatch


【解决方案1】:

一般来说,GCD 有利于轻量级并发管理。要挂起一个调度队列,只需dispatch_suspend(queue)(只有自己创建的队列,既不是主队列也不是全局队列)。在你的情况下,NSOperationQueue 更合适

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 2020-01-02
    • 2013-10-08
    • 1970-01-01
    • 2021-11-17
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    相关资源
    最近更新 更多