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

System.Data.SQLite内存数据库多线程,第1张

概述我正在使用连接字符串as创建一个System.Data.SQLite内存数据库 "Data Source=:memory:", 并希望在多线程之间访问此数据库. 现在我要做的是克隆SQLiteConnection对象并将副本传递给工作线程. 但我发现不同的线程实际上获得了内存数据库的单个实例,而不是共享实例.如何在线程之间共享一个内存数据库? 谢谢! 基于用于内存数据库的SQLite docume 我正在使用连接字符串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)以使其工作.

总结

以上是内存溢出为你收集整理的System.Data.SQLite内存数据库多线程全部内容,希望文章能够帮你解决System.Data.SQLite内存数据库多线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/1150192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存