multithreading - 为 Core Data 创建一个仅在一个线程上的 Grand Central Dispatch 队列

标签 multithreading core-data grand-central-dispatch

有没有办法创建仅在一个线程上运行的 GCD 队列? 我想使用该队列来处理核心数据操作。

最佳答案

是的;只需使用标志 DISPATCH_QUEUE_SERIAL 创建队列(这也是默认设置)。但是要小心将核心数据操作移到另一个线程上。给定的 NSManagedObjectContext 只能在单个线程上使用,因此您需要两个上下文,一个用于主线程,一个用于后台线程。正确执行此操作可能需要小心。

您可能想研究一下 UIManagedDocument(如果是 iOS5),它会为您完成大部分工作。至少您应该阅读它的文档,以便了解它在多线程处理中使用父上下文和子上下文。

关于multithreading - 为 Core Data 创建一个仅在一个线程上的 Grand Central Dispatch 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10414632/

相关文章:

core-data - 对核心数据的担忧

iphone - 在 Core Data 中复制实体

Java 在 SwingWorker 中渲染游戏 map 无法正常工作

Java 套接字 : No buffer space available (maximum connections reached? )

java - ThreadPoolExecutor 拒绝错误

Spring Batch - 如何使用分区并行读写数据?

swift - 删除核心数据条目无法使用参数列表 'deleteObject' 调用 '([AnyObject]?)'

ios - ARC下sharedInstance模式的内存含义是什么?

具有 dispatch_async/asynchronous 方法的 iOS Singleton API 管理器 : what's the implication?

arrays - 从异步调用修改数组不会快速修改数组