What's the purpose of GC.SuppressFinalize(this) in Dispose() method?
- by mr.b
I have code that looks like this:
/// <summary>
/// Dispose of the instance
/// </summary>
public void Dispose()
{
if (_instance != null)
{
_instance = null;
// Call GC.SupressFinalize to take this object off the finalization
// queue and prevent finalization code for this object from
// executing a second time.
GC.SuppressFinalize(this);
}
}
Although there is a comment that explains purpose of that GC-related call, I still don't understand why it's there.
Isn't object destined for garbage collection once all instances cease from existence (like, when used in using() block)?
What's the use case scenario where this would play important role?
Thanks!