多线程核心数据:“主”上下文线程
Posted
技术标签:
【中文标题】多线程核心数据:“主”上下文线程【英文标题】:Multi-threaded Core Data: 'Main' context thread 【发布时间】:2012-03-07 00:20:12 【问题描述】:当应用程序启动时,我初始化了一堆包含与其他实体的多对多关系的上下文对象。例如,
历史 我的足迹其中 History 和 My Tracks 将包含 o-to-many Track 实体。这些(在我当前的实现中)由主线程上的上下文管理。
当应用程序运行时,Track 实体会在后台创建并移动到 History 和 My Tracks(它们位于不同的托管对象上下文中)。所有后台线程都有自己的托管对象上下文。但是,当我必须保存我的轨迹历史记录时,它需要位于主上下文/主线程上。当主线程被阻止写入时,这会导致显着且不可接受的 UI 延迟。
对解决方法有什么建议吗?
【问题讨论】:
【参考方案1】:有许多可用的解决方案,我强烈建议您查看过去两年在 iTunes 中的 Apple WWDC 视频。我很好奇“为什么”你需要将我的曲目保存到主线程。真的是“如果我不把它保存在那里,我的主要上下文就不知道它”吗?如果是这样,有一些方法可以使用 saveChange 通知,后台线程可以让主上下文知道特定对象等。
【讨论】:
以上是关于多线程核心数据:“主”上下文线程的主要内容,如果未能解决你的问题,请参考以下文章