我用C# .Net WPF创建了一个应用程序。这个应用程序使用了一个sqlite数据库,但是这个数据库与其他程序共享。
所以很少有我的应用程序和其他应用程序同时运行,更少有他们试图同时写入DB。。而且所有应用程序都在这一点上崩溃了。。
所以,我想打补丁让我的应用程序等待数据库不再被锁定,然后再对它做一些事情。我一直在考虑做一个肮脏的try/catch循环,尝试很多次,但在我看来,这是一个太肮脏的方式(和资源的浪费)
另一个程序在使用数据库时有一个可视化的指示器,所以我认为解决方案可以包括用户操作。当数据库被锁定时,一个MessageBox打开,通知用户等待,直到其他程序完成后,再单击“确定并继续”。
这是一种不用try/catch就可以测试数据库是否被锁定的方法吗?
1条答案
按热度按时间zbsbpyhn1#
在注解之后,我尝试了一个try/catch方法,我仍然不相信这是最干净的方法,因为我不喜欢 等待异常。在我看来,预期的异常不可能是异常。
也许有人会想出一个解决方案,不使用这种托词,但我还没有找到一个更好的匹配我的期望。
感谢您的评分
我的回答是受到以下问题的启发:C# - How to detect if SQLite DB is locked?