c# - 哪个类在其构造函数中调用 SuppressFinalize 以致于您的 dispose 调用无用?

标签 c# .net dispose suppressfinalize

有些类(例如 DataTable)已经在其构造函数中调用了 SuppressFinalize,因此没有必要在其上调用处置/使用。 (因为dispose是为了早点release但是没有release)

所以,我想知道此类的列表或通过反射找到此类列表的方法?

最佳答案

您的问题做出了无效的假设。调用 SuppressFinalizeDispose 的有效性无关。当您调用 Dispose 方法时,无论是显式调用还是通过 using block ,Dispose 方法仍会执行其中写入的任何内容。

通常,Dispose 将调用 SupressFinalize,但这是因为当您遵循典型的 Dispose 模式时,Dispose 将执行本应从终结器运行的代码。由于代码已经运行,不需要finalization,这是一个比较昂贵的操作,因此Dispose会调用SupressFinalize。

关于c# - 哪个类在其构造函数中调用 SuppressFinalize 以致于您的 dispose 调用无用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884632/

相关文章:

winforms - 我应该处置 HtmlElement 实例吗?

c# - Linq to XML 选择每个具有特定属性的后代的后代

javascript - 加载图像不显示

c# - WPF-MVVM多项目结构

c# - 空操作 lambda

java - JFrame.dispose();不关闭框架

c# - 每像素 1 位的大位图导致 OutOfMemoryException

c# - 优化 C# 中的条件运算符分支

c# - 什么能在 .NET 2 上运行,什么不能运行?

c# - 有没有办法动态创建和处理 Webbrowser 控件?