1

SQLite.NetforMonodroidとを使用してきました。Monotouchスレッド間のアクセスの問題を回避するために、このコードを使用して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);

そのため、構成を設定する機能は実装されていません。

SIGSEVCバックグラウンド スレッドが Web サービスからの更新を返すと、Monodroid でエラーが発生します。

データベース接続は静的接続を使用して共有され、すべてのデータベース アクセスは lock(object) を介して共有されます。

質問:

  1. どうにかして Config を Serialized に設定することは可能ですか?
  2. または、この問題を回避するために接続とデータベースへのアクセスを定義するより良い方法はありますか?
4

1 に答える 1

3

これを修正する最善の方法は、SQLite.Net-PCL のソースを変更することだと思われました。不足している機能を実装してこれを行いました。

これには、プラットフォームごとに dll インポートと具体的な実装を作成する必要がありました。

詳細については、 https://github.com/oysteinkrog/SQLite.Net-PCL/issues/35の GitHub プロジェクトを参照してください。

于 2014-06-02T12:56:49.653 に答える