c# - 获取错误 System.IO.IOException : 'The process can

我正在开发一个带有多线程的小型应用程序。我决定使用 LiteDB 来存储数据。我能够成功地读取、更新、删除和插入我的数据库。但是,当我尝试添加另一个线程时,该线程也将使用相同的数据库和相同的表抛出异常,指出

System.IO.IOException: 'The process cannot access the file 'C:\Users\Soyuz\TestApp\bin\Debug\Soyuz.db' because it is being used by another process.'.

这就是我与数据库建立连接的方式:

using (var db = new LiteDatabase(@"Soyuz.db")) { }

这里的文档说,LiteDB 提供了两种类型的连接。我想我必须使用共享的,因为我将不得不从不同的线程访问同一个数据库。

https://www.litedb.org/docs/connection-string/

但是当我尝试这段代码时;

using (var db = new LiteDatabase(@"Soyuz.db; Connection=shared")) { }

using (var db = new LiteDatabase(@"Soyuz.db; Mode=Shared")) { }

这一次,它抛出另一个异常说

System.ArgumentException: 'EngineSettings must have Filename or DataStream as data source'

有 LiteDB 经验的人可以帮我解决这个问题吗?

最佳答案

您错过了 Filename,将其用于 v5:

using (var db = new LiteDatabase(@"Filename=Soyuz.db; Connection=shared")) { }

或者这个用于 v4

using (var db = new LiteDatabase(@"Filename=Soyuz.db; Mode=Shared")) { }

关于c# - 获取错误 System.IO.IOException : 'The process cannot access the file' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60577092/

相关文章:

javascript - YouTube 视频 API 片段标题包含 Next.js 中的特殊字符

javascript - 显示到小数点后两位 - React.Js

visual-studio-code - 有一种方法可以在 vscode 中的 ` `(重音符)内语

java - JUnit 测试方法无法返回值

python - 在python中将类返回给自身

python - 按升序对月份名称字符串列表进行排序

firebase - 在 Firebase 云存储中加载预览时出错

javascript - 使用 JavaScript 检测按键持续时间

javascript - 使用javascript在数组中首先缺少正整数?

swiftui - 使用 SwiftUI 实现 PencilKit 撤消功能