382得票5回答
何时应该使用GC.SuppressFinalize()?

在.NET中,什么情况下应该使用GC.SuppressFinalize()? 使用这种方法有哪些优势?

34得票5回答
在Dispose()方法中,GC.SuppressFinalize(this)的目的是什么?

我有以下代码: public void Dispose() { if (_instance != null) { _instance = null; // Call GC.SupressFinalize to take this object ...

34得票5回答
如果我们没有析构函数,为什么应该调用SuppressFinalize?

我有几个问题,但是找不到合适的答案。 1)当我们没有析构函数时,为什么需要在Dispose函数中调用SuppressFinalize。 2)Dispose和finalize用于在对象被垃圾回收之前释放资源。无论是托管资源还是非托管资源,我们都需要释放它,那么为什么我们需要在dispose函...

16得票5回答
C#语言:垃圾回收,SuppressFinalize

我正在阅读《C#语言》,第4版,其中关于垃圾回收的描述如下: BILL WAGNER: 以下规则是C#与其他托管环境之间的重要区别。 在应用程序终止之前,将调用尚未被垃圾回收的所有对象的析构函数,除非已经抑制了此类清理(例如通过调用库方法GC.SuppressFinalize)。 所以我有...

11得票5回答
IDisposable GC.SuppressFinalize(this) 的作用及位置。

我使用默认的IDisposable实现模板(模式)来编写我的代码。 片段:public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(...

7得票1回答
多次调用SuppressFinalize方法

多次调用GC.SuppressFinalize(object)有什么不利影响吗? “Dispose模式”的受保护Dispose(bool)方法检查是否已被调用,但公共Dispose()方法中没有这样的检查。 public void Dispose() { Dispose(true);...