每个线程一个SQLiteConnection?

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

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

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

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

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

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

来自docs

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