Одно соединение SQLite на поток? - PullRequest
9 голосов
/ 28 марта 2012

Я использую SQLite из system.data.sqlite.org

Нам нужен доступ к базе данных из многих потоков (по разным причинам).Я много читал о возможностях безопасности потока sqlite (режим синхронизированного доступа по умолчанию подходит для меня).

Интересно, можно ли просто открыть соединение для потока.Возможно ли что-то подобное?Мне действительно наплевать на условия гонки (запросить что-то, что еще не было вставлено).Меня интересует только тот факт, что к данным можно получить доступ, используя один SQLiteConnection объект на поток.

Ответы [ 2 ]

6 голосов
/ 28 марта 2012

Да.На самом деле, это правильный путь, так как SQLite не является потокобезопасным (по умолчанию. Вы можете сделать его безопасным для потоков, компилируя с некоторыми опциями).И просто чтобы убедиться, что он работает: SQLite используется на некоторых небольших веб-сайтах, поэтому многопоточность есть:)

Здесь больше информации: http://www.sqlite.org/faq.html#q6

5 голосов
/ 28 марта 2012

Учитывая, что вы используете отдельное соединение для каждого потока, все должно быть в порядке.

С документы

Обратите внимание, что экземпляр SQLiteConnection не гарантированно безопасен для потоков,Следует избегать использования одинакового SQLiteConnection в нескольких потоках одновременно.Рекомендуется открывать новое соединение для каждого потока и закрывать его, когда работа завершена.

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