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;
        }

是否有办法摆脱这个数据库锁定错误。我打开和关闭连接后,每个过程。甚至有时它会抛出这个锁错误。请给我一个解决办法,因为这对我很重要。

谢谢

Sqlite数据库锁定错误

如果我正确理解你的代码片段,你是在局部作用域的对象上使用lock。这将意味着其他线程将在不同的对象上lock

尝试定义一个全局锁,像这样:

static readonly object DatabaseLock = new object()

,然后在访问数据库的任何地方使用lock(DatabaseLock)