有没有办法创建仅在一个线程上运行的 GCD 队列? 我想使用该队列来处理核心数据操作。
最佳答案
是的;只需使用标志 DISPATCH_QUEUE_SERIAL
创建队列(这也是默认设置)。但是要小心将核心数据操作移到另一个线程上。给定的 NSManagedObjectContext
只能在单个线程上使用,因此您需要两个上下文,一个用于主线程,一个用于后台线程。正确执行此操作可能需要小心。
您可能想研究一下 UIManagedDocument
(如果是 iOS5),它会为您完成大部分工作。至少您应该阅读它的文档,以便了解它在多线程处理中使用父上下文和子上下文。
关于multithreading - 为 Core Data 创建一个仅在一个线程上的 Grand Central Dispatch 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414632/