Pourquoi faire appel dispose(false) dans le destructeur?

Ce qui suit est un exemple typique modèle dispose exemple:

 public bool IsDisposed { get; private set; }

  #region IDisposable Members

  public void Dispose()
  {
    Dispose(true);
    GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing)
  {
    if (!IsDisposed)
    {
      if (disposing)
      {
        //perform cleanup here
      }

      IsDisposed = true;
    }
  }

  ~MyObject()
  {
    Dispose(false);
  }

Je comprends ce que jeter le fait, mais ce que je ne comprends pas, c'est pourquoi vous souhaitez appeler en disposer(false) dans le destructeur? Si vous regardez la définition qu'elle ferait absolument rien, alors pourquoi serait-on écrire du code comme celui-ci? Ne serait-il pas logique de juste pas appel de disposer de l'destructeur à tous?

InformationsquelleAutor ryeguy | 2009-03-10