Asp.net 是否有比Finalize更多的即时析构函数可用?

Asp.net 是否有比Finalize更多的即时析构函数可用?,asp.net,vb.net,Asp.net,Vb.net,我围绕mysql connector for.net创建了一个包装类,以使其使用起来更加舒适(并交换我正在计划的其他东西) 其想法是,在每次请求时,我都会生成一个新的包装器实例,做任何事情,当请求得到响应时,包装器对象应该被销毁,连接应该在其finalize子中关闭 不过,我做了一些负载测试,如果推得足够用力,我的池连接似乎会用完,因为包装器对象的销毁速度不够快 所以。。是否有其他子类可以重写,可能是在与所述对象的所有交互完成后立即执行的子类?如果类实现了IDisposable,则可以使用将其用

我围绕mysql connector for.net创建了一个包装类,以使其使用起来更加舒适(并交换我正在计划的其他东西)

其想法是,在每次请求时,我都会生成一个新的包装器实例,做任何事情,当请求得到响应时,包装器对象应该被销毁,连接应该在其finalize子中关闭

不过,我做了一些负载测试,如果推得足够用力,我的池连接似乎会用完,因为包装器对象的销毁速度不够快


所以。。是否有其他子类可以重写,可能是在与所述对象的所有交互完成后立即执行的子类?

如果类实现了
IDisposable
,则可以使用
将其用法包装到
块中,该块将在该块退出后立即处理。您应该对所有实现了
IDisposable
的类执行此操作,以确保及时清理它们的资源,否则您将任由垃圾收集器摆布

例如:

Using myObject As New MyWrapperType(wrappedThing) 
    ' Do stuff with myObject
End Using
在C中#

using
块超出范围时,将处理
myObject

有关更多信息:

更新


我应该补充一点,如果您要将
IDisposable
添加到包装器中,那么您应该对正在包装的对象调用dispose,以便在
Using
块退出时,它们也会被处理。

显示相关代码。这会有帮助…现在这个问题很模糊。即使有选择的答案,这个问题对社区也没有什么价值。您应该发布您的代码,以便将来对其他人更有用。
using(var myObject = new MyWrapper(wrappedThing))
{
    // Do stuff with myObject
}