多线程核心数据:'主'上下文线程

时间:2012-03-07 00:20:13

标签: ios multithreading core-data nsmanagedobject nsmanagedobjectcontext

当应用程序启动时,我初始化了一堆上下文对象,这些对象包含与其他实体的多对多关系。例如,

  • 历史
  • 我的曲目

其中History和My Tracks将包含o-to-many Track实体。这些(在我当前的实现中)由主线程上的上下文管理。

在应用程序运行时,Track实体在后台创建并移至History和My Tracks(位于不同的托管对象上下文中)。所有后台线程都有自己的托管对象上下文。但是,当我必须保存My Tracks的历史记录时,它需要位于主上下文/主线程上。当主线程被阻止写入时,这会导致显着且不可接受的UI延迟。

有关解决方法的任何建议吗?

1 个答案:

答案 0 :(得分:0)

有很多可用的解决方案,我强烈建议在过去两年中查看Apple的WWDC视频。我很好奇你为什么需要将My Tracks保存到主线程中。真的是“如果我不把它保存在那里,我的主要背景是不知道的”?如果是这样,有一些方法可以使用saveChange通知,后台线程可以让主要上下文知道特定对象等。