Sqlite数据库锁定错误
本文关键字:错误 锁定 数据库 Sqlite | 更新日期: 2023-09-27 17:54:54
我正在开发c#应用程序与后端sqlite数据库。在我的应用程序中,正在使用多线程概念。所有线程都将调用下面提到的代码。当数据库被锁定时,会抛出错误。
lock (localLockHandle)
{
SQLiteCommand cmd = conn.CreateCommand();
cmd.CommandText = sqlExpr;
int ireturn = cmd.ExecuteNonQuery();
return ireturn;
}
是否有办法摆脱这个数据库锁定错误。我打开和关闭连接后,每个过程。甚至有时它会抛出这个锁错误。请给我一个解决办法,因为这对我很重要。
谢谢
如果我正确理解你的代码片段,你是在局部作用域的对象上使用lock
。这将意味着其他线程将在不同的对象上lock
。
尝试定义一个全局锁,像这样:
static readonly object DatabaseLock = new object()
,然后在访问数据库的任何地方使用lock(DatabaseLock)
。