【发布时间】:2012-02-21 03:39:58
【问题描述】:
我正在使用NSPrivateQueueConcurrencyTypeNSManagedObjectContext,在以下情况下会发生死锁。
在后台线程上,调用 performBlock:。该块包含一个executeFetchRequest:error: 调用。
当该块正在执行时,主线程调用performBlockAndWait:。主线程等待,而后台线程的块完成。这很正常。
在后台线程块上调用executeFetchRequest:error: 时,会发生死锁。
我想executeFetchRequest:error: 正在等待performBlockAndWait: 完成的主线程。
这是一个错误吗?还是我不明白什么?对我来说,所有这些代码似乎都适用于 NSPrivateQueueConcurrencyType MOC。
【问题讨论】:
-
这种情况不会经常发生,但是一旦发生,好吧……应用程序已经死了。
标签: iphone ios core-data concurrency deadlock