在尝试删除文件之前,我在关闭数据库时遇到问题。代码就是这样 myconnection.Close(); File.Delete(filename);并且Delete抛出了一个异常,即该文件仍在使用中。几分钟后我在调试器中重新尝试了Delete(),所以这不是时间问题。我有事务代码,但在Close()调用之前它根本不运行。所以我很确定这不是一个开放的交易。打开和关闭之间的sql命令只是选择。ProcMon显示我的程序和我的防病毒软件查看数据库文件。它没有显示我的程序在close()之后释放db文件。Visual Studio 2010,C#,System.Data.SQLite版本1.0.77.0,Win7我看到一个两岁的bug就像这样,但更新日志说它已修复。还有什么我可以检查的吗?有没有办法获得任何打开的命令或事务的列表?新的工作代码: db.Close(); GC.Collect(); // yes, really release the db bool worked = false; int tries = 1; while ((tries < 4) && (!worked)) { try { Thread.Sleep(tries * 100); File.Delete(filename); worked = true; } catch (IOException e) // delete only throws this on locking { tries++; } } if (!worked) throw new IOException("Unable to close file" + filename);
添加回答
举报
0/150
提交
取消