Podczas korzystania z SqlConnection ważne jest, aby zawsze zamykać je podczas używania - przez .Close() lub umieszczając SqlConnection w "użyciu". Na szczęście ludzie, w tym ja, zapomnielibyśmy o tym i to jest miejsce, w którym od czasu do czasu zbieracze śmieci ratują mnie, dopóki nie zapomniałem zbyt wiele razy zamknąć połączeń lub liczba osób korzystających z aplikacji rośnie.Wykrywanie, czy wywoływacz został wywołany (.Net)
Chciałbym wiedzieć, jeśli to możliwe, jak wykryć, czy śmieciarz usunął SqlConnection, ponieważ uznał, że nie był już używany lub czy SqlConnection został zamknięty we właściwy sposób.
Innym sposobem może być dziedziczenie SqlConnection i umieszczenie licznika czasu na jego inicjalizatorze oraz sprawdzenie, ile czasu upłynęło, zanim połączenie zostanie zamknięte podczas usuwania klasy. Nie lubię zegarów, ale pomysł pojawił się podczas pisania tego.
Może jest trzeci, a nawet mądrzejszy sposób na to wszystko ... Co byś polecił?
'albo .close() lub umieszczając SqlConnection w "użyciu" '** NO NO NO! ** .Close() nie jest wystarczająco dobre samo w sobie. Taki jest sens konstruktu 'using': zbyt wiele osób zapomina również, że twój .Close() _must_ powinien znajdować się w bloku finally. –