【问题标题】: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 延迟。

对解决方法有什么建议吗?

【问题讨论】:

    标签: ios multithreading core-data nsmanagedobject nsmanagedobjectcontext


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多