首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有在调用GC.SuppressFinalize(this)时不使用"this“的用例?

有没有在调用GC.SuppressFinalize(this)时不使用"this“的用例?
EN

Stack Overflow用户
提问于 2013-04-14 04:46:19
回答 1查看 413关注 0票数 18

我只是在实现Dispose模式,当我刚刚输入GC.SuppressFinalize(this)行时,我想知道是否有使用this以外的其他东西作为方法的参数的用例。

这是典型的模式:

代码语言:javascript
复制
public void Dispose()
{
    Dispose(true);
    GC.SuppressFinalize(this);  // right here
}

this以外的其他东西调用GC.SuppressFinalize()有意义吗

代码语言:javascript
复制
public void Dispose()
{
    Dispose(true);
    GC.SuppressFinalize(foo);  // should this ever happen?
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-25 16:12:07

根据MSDN的说法:

http://msdn.microsoft.com/en-us/library/system.gc.suppressfinalize.aspx

实际上,可以在某些场景中使用您的示例: GC.SuppressFinalize(foo),但不能在通用dispose模式的场景中使用。

例如,您可能希望为多个对象编写某种类型的dispose管理模式,而不是从对象内部实现通用的dispose模式。另一种选择是,如果您希望对象保持被抑制状态,然后可能会声明它?从来没有这样做过..但这是有可能的。

所以有可能是的..可能不会发生--也可能永远不会发生。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15992740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档