Я работаю над .NET-приложением, использующим SQLite. В соответствии с SQLite documentation он поддерживает многопоточность и может использоваться в одном из следующих трех режимов:Serealized mode в System.Data.SQLite for .NET
- Однопоточный. В этом режиме все мьютексы отключены, и SQLite небезопасно использовать более чем в одном потоке одновременно.
- Multi-thread. В этом режиме SQLite можно безопасно использовать несколькими потоками при условии, что одно соединение с базой данных не используется одновременно в двух или более потоках.
- Серийный номер. В сериализованном режиме SQLite можно безопасно использовать несколькими потоками без ограничений.
В соответствии с этими режимами я пытаюсь использовать Serialized, где я использую одно соединение для нескольких задач. Но я получаю ошибку как «Операция недействительна из-за текущего состояния объекта.«
Я предполагаю, что это связано с совместным использованием единого соединения между задачами. Но в соответствии с Сериализованным режимом я должен иметь возможность обмениваться соединением без какой-либо явной реализации блокировки или мьютекса. Может ли кто-нибудь мне посоветовать, как я могу использовать Serialized mode в приложении .net? Нужно ли, чтобы строка подключения была упомянута определенным образом?
Спасибо заранее!
Просто используйте одно соединение для каждой нити. –
Но это будет режим многопоточной резьбы. Я не хочу создавать соединение каждый раз, когда я общаюсь с SqliteDB, поэтому перехожу к режиму потоковой обработки «Serialized». –
@CL. Действительно ли System.Data.SQLite поддерживает режим «Serialized» Threading? –