在嘗試刪除文件之前,我在關(guān)閉數(shù)據(jù)庫時遇到問題。代碼就是這樣 myconnection.Close(); File.Delete(filename);并且Delete拋出了一個異常,即該文件仍在使用中。幾分鐘后我在調(diào)試器中重新嘗試了Delete(),所以這不是時間問題。我有事務(wù)代碼,但在Close()調(diào)用之前它根本不運(yùn)行。所以我很確定這不是一個開放的交易。打開和關(guān)閉之間的sql命令只是選擇。ProcMon顯示我的程序和我的防病毒軟件查看數(shù)據(jù)庫文件。它沒有顯示我的程序在close()之后釋放db文件。Visual Studio 2010,C#,System.Data.SQLite版本1.0.77.0,Win7我看到一個兩歲的bug就像這樣,但更新日志說它已修復(fù)。還有什么我可以檢查的嗎?有沒有辦法獲得任何打開的命令或事務(wù)的列表?新的工作代碼: 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);
添加回答
舉報(bào)
0/150
提交
取消