【发布时间】:2015-02-25 18:55:58
【问题描述】:
我对有关 performBlock: 和 PerformBlockAndWait: 的文档解释感到困惑: 它说: performBlock 是异步的,而 withWait:is sync 在接收者的队列中。 那个“接收者”是指 NSManagedObjectContext 吗? 如果上下文是私有类型,那么块在后台线程中执行,如果上下文是主类型并且块在主线程中执行? 非常感谢
【问题讨论】:
标签: core-data
我对有关 performBlock: 和 PerformBlockAndWait: 的文档解释感到困惑: 它说: performBlock 是异步的,而 withWait:is sync 在接收者的队列中。 那个“接收者”是指 NSManagedObjectContext 吗? 如果上下文是私有类型,那么块在后台线程中执行,如果上下文是主类型并且块在主线程中执行? 非常感谢
【问题讨论】:
标签: core-data
没错。您正确理解了文档。
“Receiver”指的是现有的上下文,所以如果这是一个后台上下文,该块将在后台线程中执行,如果是主上下文,则在主线程上。
【讨论】:
这两种方法都将在上下文的队列上执行块(在后台线程上,在私有队列上下文的情况下)。但是,performBlockAndWait: 方法也会阻塞调用线程,直到该块在后台线程上执行完毕。
【讨论】: