Я использую async-интерфейс sqlite-net для кодирования приложения Windows Phone. При написании модульного теста, чтобы убедиться, что мой адаптер API sqlite-net правильно создал файл, я заметил, что адаптер продолжает удерживаться в дескрипторе файла даже после того, как он вышел из сферы действия.Поддерживает ли поддержка async API sqlite-net?
Класс асинхронного подключения (SQLiteAsyncConnection
) не поддерживает IDisposable
, поэтому я не могу вручную его утилизировать. Глядя на источник, похоже, что асинхронный 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 :) –