每个线程一个SQLiteConnection?

时间:2012-03-28 14:48:12

标签: c# multithreading sqlite

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

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

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

2 个答案:

答案 0 :(得分:6)

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

以下详细信息:http://www.sqlite.org/faq.html#q6

答案 1 :(得分:5)

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

来自docs

  

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