数据库锁定Sqlite多线程



我正在用SQLite数据库编程一个c#应用程序,我有时在输出日志中得到消息:Database Locked(5)。我不希望发生这种情况,我知道对数据库执行的多个操作会给我这个异常。

问题:

是否有一种方法来查看sqliteddatabase是否忙于处理其他查询?

如果您正在创建一个多线程应用程序,拥有所需的知识并不能解决任何问题。它们可能会使它们出现的频率降低,但偶尔您会看到与以前相同的问题。

为什么?因为从你问"你被锁定了吗?"到你说"那样的话,让我锁定你做点什么"的那一刻起,另一个线程可能已经跳进来锁定了它。

除非您得到超时,否则我会处理异常并确定在每种情况下要做什么。

此外,由于SQLite本质上是一个单用户(不是用户,而是"使用数据库的东西"中的用户)数据库,您可能会认为这不会成为工作的错误工具。

最新更新