我正在使用sqlite-net異步API來編寫Windows Phone應用程序。在編寫單元測試以確保我的適配器到sqlite-net API正確創建文件時,我注意到適配器即使在超出範圍之後仍繼續保持文件句柄。是否支持sqlite-net異步API支持?
異步連接類(SQLiteAsyncConnection
)不支持IDisposable
,因此我無法手動處理它。看看源代碼,似乎async API會創建一個連接,使用它並每次處置它。但是,當我的測試清理代碼嘗試刪除創建的測試數據庫時,其他一些資源仍然保留在其上。
如果是這種情況,也許你只需要在嘗試刪除之前調用GC.Collect()。不過,我自己並沒有看到這種行爲。 :-( – Gordon
十幾年前,他們已經知道不要調用GC.Collect()手動http://blogs.msdn.com/b/ricom/archive/2003/12/02/two-things-to-avoid -for-better-memory-usage.aspx :) –