.NET的System.Data.SQLite中的serealized模式

D D*_*ane 5 c# sqlite multithreading system.data.sqlite

我正在使用SQLite的.NET应用程序上工作。根据SQLite 文档,它支持多线程,并且可以在以下3种模式之一中使用

  1. 单线程。在这种模式下,所有互斥锁均被禁用,并且SQLite不安全,无法一次在多个线程中使用。
  2. 多线程。在这种模式下,只要两个或多个线程中没有同时使用单个数据库连接,SQLite可以安全地被多个线程使用。
  3. 序列化。在序列化模式下,SQLite可以不受限制地被多个线程安全使用。

按照这些模式,我尝试在多个任务共享单个连接的地方使用序列化。但是我收到错误消息,因为“ 由于对象的当前状态,操作无效。

我猜这是由于任务之间共享单个连接所致。但是,按照序列化模式,我应该能够共享连接而无需执行任何显式的锁定或互斥量实现。 谁能指导我如何在.net应用程序中使用序列化模式?是否需要以某种方式提及连接字符串?

提前致谢 !

D D*_*ane 1

序列化是默认模式。不要再次关闭打开的连接,而是在每个地方使用相同的单个连接,而无需关闭它。SQLite 将负责休息。希望这可以帮助。