我有一个使用 sqlite 的多线程应用程序。当两个线程尝试同时更新数据库时,出现异常
Additional information: The database file is locked
我以为它会在几毫秒后重试。我的查询并不复杂。最复杂的(经常发生)是更新、选择、运行琐碎的代码更新/删除、提交。为什么会抛出异常?我怎样才能让它在抛出异常之前重试几次?
最佳答案
SQLite 的访问不是线程安全的,这就是您收到此错误消息的原因。
无论何时更新,您都应该同步对数据库的访问(创建一个对象,并“锁定”它)。这将导致第二个线程阻塞并等待第一个线程的更新自动完成。
关于c# - 如何停止 The database file is locked 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800174/