有些类(例如 DataTable)已经在其构造函数中调用了 SuppressFinalize,因此没有必要在其上调用处置/使用。 (因为dispose是为了早点release但是没有release)
所以,我想知道此类的列表或通过反射找到此类列表的方法?
最佳答案
您的问题做出了无效的假设。调用 SuppressFinalize
与 Dispose
的有效性无关。当您调用 Dispose 方法时,无论是显式调用还是通过 using
block ,Dispose 方法仍会执行其中写入的任何内容。
通常,Dispose 将调用 SupressFinalize,但这是因为当您遵循典型的 Dispose 模式时,Dispose 将执行本应从终结器运行的代码。由于代码已经运行,不需要finalization,这是一个比较昂贵的操作,因此Dispose会调用SupressFinalize。
关于c# - 哪个类在其构造函数中调用 SuppressFinalize 以致于您的 dispose 调用无用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884632/