每个线程一个SQLiteConnection?

Ody*_*dys 9 c# sqlite multithreading

我在system.data.sqlite.org上使用SQLite

我们需要从许多线程访问数据库(出于各种原因).我已经阅读了很多关于sqlite线程安全功能的内容(默认的同步访问模式对我来说很好).

我想知道是否可以简单地打开每个线程的连接.这样的事情可能吗?我真的不关心竞争条件(请求尚未插入的东西).我只对SQLiteConnection每个线程使用一个对象访问数据这一事实感兴趣.

Ivo*_*Ivo 6

是.事实上,这是正确的方法,因为SQLite不是线程安全的(默认情况下.你可以使用某些选项进行线程安全编译).并且只是为了确保它的工作:SQLite正在一些小型网站中使用,所以多线程就在那里:)

更多信息:http://www.sqlite.org/faq.html#q6


ole*_*sii 5

鉴于你每个线程使用一个单独的连接,你应该没问题.

来自docs

请注意,不保证SQLiteConnection实例是线程安全的.您应该避免同时在多个线程中使用相同的 SQLiteConnection.建议每个线程打开一个新连接,并在完成工作后关闭它.