Jan*_*mer 5 .net garbage-collection sqlconnection timer
使用SqlConnection时,在使用时始终关闭它非常重要 - 通过.Close()或将SqlConnection置于"using"中.幸运的是,人们,包括我自己,往往忘记了这一点,这就是垃圾收集者拯救我一段时间,直到我忘记关闭我的连接太多次或者使用该应用程序的人数增加.
我想知道,如果可能的话,如何检测垃圾收集器是否处理了SqlConnection,因为它认为它已经不再使用或者SqlConnection以正确的方式关闭了.
另一种方法是继承SqlConnection并在其初始化程序上放置一个计时器,并检查在处理类时关闭连接所需的时间.我真的不喜欢计时器,但这个想法只是在写这篇文章的时候出现了.
也许还有第三种甚至是更聪明的方式......你会推荐什么?
一条经验法则是:“如果您必须考虑垃圾收集器,那么您可能做错了什么。” (当然,还有其他的大拇指...)
using在我看来,确保显式或通过块关闭连接finally是最好的路线。
显然,您已经了解这些技术......所以也许一次浏览代码和可能的重构就是您所需要的。