【问题标题】:NSManagedObjectContext performBlock threadNSManagedObjectContext performBlock 线程
【发布时间】:2015-02-25 18:55:58
【问题描述】:

我对有关 performBlock: 和 PerformBlockAndWait: 的文档解释感到困惑: 它说: performBlock 是异步的,而 withWait:is sync 在接收者的队列中。 那个“接收者”是指 NSManagedObjectContext 吗? 如果上下文是私有类型,那么块在后台线程中执行,如果上下文是主类型并且块在主线程中执行? 非常感谢

【问题讨论】:

    标签: core-data


    【解决方案1】:

    没错。您正确理解了文档。

    “Receiver”指的是现有的上下文,所以如果这是一个后台上下文,该块将在后台线程中执行,如果是主上下文,则在主线程上。

    【讨论】:

      【解决方案2】:

      这两种方法都将在上下文的队列上执行块(在后台线程上,在私有队列上下文的情况下)。但是,performBlockAndWait: 方法也会阻塞调用线程,直到该块在后台线程上执行完毕。

      【讨论】:

      • 这么看来,performBlock喜欢dispatch_asyn,performBlockAndWait喜欢dispatch_syn,而队列依赖于私有类型(后台队列),主类型上下文(主线程队列)?谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多