虽然我知道终于和终结者的工作情况,但我有一个需要澄清的澄清。
我遇到的情况是我打开与Datbabase实例的连接并执行操作。 喜欢
try
{
//Open a connection to db
//Perform some operations.
}
catch(Exception e)
{
}
finally
{
//Call the dispose method
}
在这里,我知道最终会被调用,所以每次都会发生处置。
接下来,在终结器中我处理连接。
public class DbConnection
{
~DbConnection()
{
//Call the dispose method
}
}.
这两种方法正在执行相同的操作,即释放非托管资源。虽然终结器有时会出现问题,例如 “处理程序在被访问之前被终结器关闭”, 然后我为什么要使用终结器?在这种情况下,最终接近我的情况是否可行?