我想在我的WPF应用程序中以多线程模式使用SQLite。我是C#的初学者,已经阅读了很多关于SQLite和多线程的帖子,但是......无法实现我想要的...
它并没有改变任何事情。 非常感谢你……
我创建了一个后台工作器,解析不同的文件,然后将每个文件的结果插入到一个数据库中。
我正在使用SQLite.net PCL。
除非有人问我,否则我不会发布所有代码,但为了进行一些测试,我会做类似这样的事情:
lock (_lock)
{
using (var test = new SQLiteConnection(new SQLitePlatformWin32(), "test.s3db"))
{
test.Insert(new MyClassWhichHaveAllField(){Title="XXX"});
}
}
_lock被定义为:
public static object _lock = new object();
在我的BackgroundWorker实现中,我使用了静态成员。
即使我加了锁,我仍然收到异常消息"SQLite.Net.SQLiteException: Could not open database file: recipes.s3db (Misuse)"
我尝试添加一些SQLiteOpenFlags:
SQLiteOpenFlags.FullMutex
它并没有改变任何事情。 非常感谢你……