Я использовал SQLite.Net
для Monodroid
и 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
на Monodroid, когда мой фоновый поток возвращается с обновлениями из веб-службы.
Соединение с базой данных используется совместно с использованием статического соединения, а весь доступ к базе данных — через блокировку (объект).
Вопросы:
- Можно ли как-то настроить Config на Serialized?
- или есть ли лучший способ определить мое соединение и доступ к базе данных, чтобы избежать этой проблемы.