在.Net中完成的成本

Jul*_*les 5 .net c# vb.net idisposable finalize

(1)我已经阅读了很多关于IDisposable的问题,其中答案建议不要使用Finalize,除非你真的需要因为涉及的处理时间.
我没有看到的是这笔费用是多少以及支付的频率.每毫秒?第二?小时,天等

(2)此外,在我看来,如果一个物体可以处理,并不总是知道Finalize是否方便.例如,框架字体类.控件无法处理它,因为它不知道字体是否共享.字体通常是在设计时创建的,因此用户不会知道处理它,因此最终确定踢,以便在没有引用时最终摆脱它.这是一个正确的印象吗?

小智 7

finalize的主要问题是它阻止一个对象被垃圾收集.相反,调用终结器,并在"下次运行"时收集对象.好吧,从技术上讲IIRC终结器在一个单独的线程中运行一个对象列表.无论如何,这不是一个"每个ms"的问题,更多的是"需要多个GC运行来摆脱对象.