При использовании SqlConnection важно всегда закрывать его при использовании - либо .Close(), либо помещать SqlConnection в «использование». К несчастью, люди, в том числе и я, как правило, забывают об этом, и именно здесь сборщики мусора ненадолго спасают меня, пока я не забуду слишком часто закрывать свои подключения или увеличивать число пользователей, использующих приложение.Обнаружение, если вызывается сборщик мусора (.Net)
Я хотел бы знать, если вообще возможно, как определить, установил ли сборщик мусора SqlConnection, потому что он решил, что он больше не используется, или если SqlConnection был закрыт правильным способом.
Другой способ может быть наследованием SqlConnection и поместить таймер на его инициализатор и проверить, сколько времени потребовалось для закрытия соединения при утилизации класса. Мне не очень нравятся таймеры, но идея придумала это.
Возможно, есть третий и даже более умный способ ко всему этому ... Что бы вы порекомендовали?
'либо .close() или размещения SqlConnection в «использовании» ** НЕТ НЕТ НЕТ! **. Закрытие() недостаточно само по себе. В этом весь смысл конструкции 'using': слишком много людей также забывают, что ваш .Close() _must_ находится в конечном блоке. –