Ich benutze die sqlite-net async API um eine Windows Phone App zu programmieren. Beim Schreiben eines Komponententests, um sicherzustellen, dass mein Adapter an die sqlite-net-API die Datei ordnungsgemäß erstellt hat, habe ich festgestellt, dass der Adapter das Datei-Handle weiterhin festhält, auch nachdem es den Gültigkeitsbereich verlassen hat.Unterstützt die sqlite-net async API-Unterstützung?
Die asynchrone Verbindungsklasse (SQLiteAsyncConnection
) unterstützt IDisposable
nicht, so dass ich sie nicht manuell entsorgen kann. Wenn man sich die Quelle anschaut, sieht es so aus, als ob die asynchrone API eine Verbindung herstellt, sie verwendet und sie jedes Mal disponiert. Wenn jedoch mein Testbereinigungscode versucht, die erstellte Testdatenbank zu löschen, hält sich noch eine andere Ressource fest.
Wenn das der Fall war, müssen Sie nur GC.Collect() aufrufen, bevor Sie versuchen, zu löschen. Ich sehe dieses Verhalten jedoch nicht selbst. :-( – Gordon
Vor mehr als zehn Jahren wussten sie bereits, dass sie GC.Collect() nicht manuell aufrufen sollten http://blogs.msdn.com/b/ricom/archive/2003/12/02/two-things-to-avoid -für-besser-speicher-benutzung.aspx :) –