Образ диска базы данных искажен в MonoTouch - PullRequest
3 голосов
/ 16 февраля 2012

Я использую Monotouch 5 для разработки многопоточного приложения для обмена сообщениями. После нескольких дней работы некоторые клиенты получают ошибку Database disk image is malformed. Я использую SQLite.cs от Kueger Systems, которую я нашел в Интернете, для доступа к базе данных SQLite.

Похоже, что существует проблема с несколькими потоками, обращающимися к базе данных (что часто случается). Я где-то читал о том, как база данных компилируется (однопотоковая, многопоточная, сериализованная). Я это как-то уточняю?

Я хочу продолжить обновление базы данных из фоновых потоков, не повреждая ее. Что я делаю не так?

1 Ответ

2 голосов
/ 16 февраля 2012

Вы можете sqlite рассказать, как бороться с многопоточностью. Хитрость заключается в том, чтобы сделать это очень в начале вашего приложения (поскольку после инициализации sqlite будет слишком поздно его менять).

Для SQLite.cs вы можете сделать это, используя этот код.

В Mono.Data.Sqlite.dll вы можете позвонить Mono.Data.Sqlite.SqliteConnection.SetConfig (Mono.Data.Sqlite.SQLiteConfig.*);, чтобы сделать то же самое.

В обоих случаях действительные значения (для перечисления конфигурации) задокументированы здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...