Sqlite сам по себе не является поточно-ориентированным, поэтому вам нужно вручную блокировать его всякий раз, когда вы собираетесь получить доступ к базе данных.Вы можете видеть, как я делал это с TweetStation:
http://github.com/migueldeicaza/TweetStation/
Это позволяет мне обновлять базу данных в фоновом режиме.
Есть несколько привязок к Sqlite: sqlite-net, представляющий собой крошечную привязку Sqlite или Mono.Data.Sqlite.
Что касается CoreData, у него будут те же проблемы, вы не получаете безопасность потоков бесплатно, вам нужно следовать их правилам, какхорошо.