Многопоточные основные данные: главный контекстный поток - PullRequest
1 голос
/ 07 марта 2012

Когда приложение запускается, я инициализирую кучу контекстных объектов, которые содержат множество связей с другими сущностями. Например,

  • История
  • Мои треки

где История и Мои Треки будут содержать о-во-многих сущностей Треков. Они (в моей текущей реализации) управляются контекстом в главном потоке.

Во время работы приложения объекты «Отслеживание» создаются в фоновом режиме и перемещаются в «Журнал» и «Мои отслеживания» (которые находятся в другом контексте управляемого объекта). Все фоновые потоки имеют собственный контекст управляемого объекта. Однако, когда мне нужно сохранить историю моих треков, она должна быть в главном контексте / главном потоке. Это вызывает значительную и недопустимую задержку пользовательского интерфейса, в то время как основной поток блокируется для записи.

Есть предложения для обхода?

1 Ответ

0 голосов
/ 19 марта 2012

Для этого существует ряд решений, и я настоятельно рекомендую посмотреть видеоролики Apple WWDC в iTunes за последние два года. Мне любопытно, почему вы должны сохранять Мои треки в основной ветке. Неужели «если я не сохраню это там, мой главный контекст не узнает об этом»? Если это так, есть способы с уведомлениями saveChange, посредством которых фоновый поток может сообщить основному контексту о конкретных объектах и ​​тому подобном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...