1

我一直在使用SQLite.NetforMonodroidMonotouch,为了避免跨线程访问的问题,我使用此代码设置Serialized模式。

    SQLite.SQLite3.Shutdown();
    SQLite.SQLite3.Config(SQLite.SQLite3.ConfigOption.Serialized);
    SQLite.SQLite3.Initialize();

这确实阻止了任何问题(SIGSEVC出现错误)。

我现在尝试将我的库代码移动到PCL,所以使用oysteinkrog/SQLite.Net-PCL 但设置配置模式的选项似乎不再存在。搜索代码我发现在SQLite.Net.Interop.ISQLiteApi以下行中。

//        Result Config(ConfigOption option);

所以设置配置的能力没有实现。

现在,当我的后台线程从 Web 服务返回更新时,我再次SIGSEVC在 Monodroid 上遇到错误。

数据库连接使用静态连接共享,所有数据库访问通过锁(对象)。

问题:

  1. 是否可以以某种方式将配置设置为序列化?
  2. 或者,我有没有更好的方法来定义我的连接和数据库访问以避免这个问题。
4

1 回答 1

3

修复它的最佳方法似乎是修改 SQLite.Net-PCL 的源代码。我已经完成了这个实现缺失的功能。

这需要为每个平台创建 dll 导入和具体实现。

GitHub 项目的详细信息在这里https://github.com/oysteinkrog/SQLite.Net-PCL/issues/35

于 2014-06-02T12:56:49.653 回答