Нет, это не лучший способ, деструктор дорог.
Лучшим способом было бы добавить метод Close () или, возможно, метод Dispose()
(интерфейс IDiposable).
Но вам нужно очень тщательно определить, что означает "больше не используется", и если вы хотите, чтобы дополнительные проблемы решались и отслеживались.
Вы можете использовать деструктор для его автоматизации, но было бы лучше сделать это условным (только для отладочной конфигурации). Также учтите, что деструктор реализует «недетерминированную» финализацию.