加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

System.Data.SQLite内存数据库多线程

发布时间:2020-12-12 18:54:56 所属栏目:百科 来源:网络整理
导读:我正在使用连接字符串as创建一个System.Data.SQLite内存数据库 "Data Source=:memory:", 并希望在多线程之间访问此数据库. 现在我要做的是克隆SQLiteConnection对象并将副本传递给工作线程. 但我发现不同的线程实际上获得了内存数据库的单个实例,而不是共享
我正在使用连接字符串as创建一个System.Data.SQLite内存数据库

"Data Source=:memory:",

并希望在多线程之间访问此数据库.

现在我要做的是克隆SQLiteConnection对象并将副本传递给工作线程.

但我发现不同的线程实际上获得了内存数据库的单个实例,而不是共享实例.如何在线程之间共享一个内存数据库?

谢谢!

解决方法

基于用于内存数据库的SQLite documentation,我将尝试使用URI文件名约定文件:: memory:?cache = shared等命名的数据源,而不是:memory :(并特别注意所有连接所在的缓存名称)告诉使用).正如页面上所解释的那样,a:memory:的每个实例都是彼此不同的,正如你所发现的那样.

请注意,在与内存数据库建立连接之前,您可能还必须首先启用共享缓存模式(如shared cache documentation中所指定的,调用sqlite3_enable_shared_cache(int)以使其工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读