标签: ios multithreading sqlite xamarin.ios
我正在使用Monotouch 5开发多线程消息传递应用程序。经过几天的操作后,一些客户收到错误Database disk image is malformed。我正在使用我在互联网上找到的Kueger Systems的SQLite.cs来访问SQLite数据库。
Database disk image is malformed
似乎有多个线程访问数据库的问题(发生了很多)。我已经阅读过关于如何编译数据库的选项(单线程,多线程,序列化)。我会以某种方式指定吗?
我想继续从后台线程更新数据库,而不会破坏它。我做错了什么?
答案 0 :(得分:2)
您可以告诉 sqlite 如何处理多线程。诀窍是在应用程序的早期非常(因为一旦初始化sqlite,改变它就太晚了。)
对于SQLite.cs,您可以使用this代码执行此操作。
在Mono.Data.Sqlite.dll中,您可以致电Mono.Data.Sqlite.SqliteConnection.SetConfig (Mono.Data.Sqlite.SQLiteConfig.*);进行同样的操作。
Mono.Data.Sqlite.dll
Mono.Data.Sqlite.SqliteConnection.SetConfig (Mono.Data.Sqlite.SQLiteConfig.*);
在这两种情况下,有效值(对于配置枚举)都记录在here。