Bob*_*orn 18 c# garbage-collection design-patterns
我只是实现了Dispose模式,当我输入GC.SuppressFinalize(this)行时,我想知道是否有一个用例来使用除了this作为方法参数之外的其他东西.
这是典型的模式:
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this); // right here
}
Run Code Online (Sandbox Code Playgroud)
GC.SuppressFinalize()用别的东西打电话有意义this吗?
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(foo); // should this ever happen?
}
Run Code Online (Sandbox Code Playgroud)
根据 MSDN:
http://msdn.microsoft.com/en-us/library/system.gc.suppressfinalize.aspx
事实上,您的示例: GC.SuppressFinalize(foo) 可能会在某些场景中使用,但不会在常见处置模式的场景中使用。
在示例中,您可能希望为许多对象编写某种处置管理模式,而不是从对象内部实现常见的处置模式。另一种选择是,如果您希望某个对象保持被抑制状态,稍后可能会声称它?从来没有这样做过..但这是可能的。
所以有可能是的……可能会发生,不会——而且可能永远不会发生。