title: Shoud disposing the same instance multiple times be possible
body: <p>Should it be possible, to call <code>.Dispose</code> for the same instance of <code>IDisposable</code> multiple times without throwing an exception? Is there some definition for this?</p>
  
  <p>For example:</p>
  
  <pre><code>public class Test : IDisposable
  {
      public void Dispose()
      {
          // What ever
      }
  }
  
  var t = Test();
  t.Dispose();
  t.Dispose(); // Should this work in any case?
  </code></pre>
  
  <p>The reason why I'm asking this:</p>
  
  <p>I've created some mechanism, which search in the <code>VisualTree</code> for elements, which inherit from <code>IDisposable</code>, but i can not be sure, that one of these elements gets disposed before.</p>
  
  <p><em>Some code snipped from a window class</em></p>
  
  <pre><code>/// &lt;summary&gt;
  /// Dispose
  /// &lt;/summary&gt;
  public void DisposeAll()
  {
      foreach (var obj in WPFVisualTreeHelper.FindChildren&lt;IDisposable&gt;(this))
      {
          if (!disposables.Contains(obj))
          {
              disposables.Add(obj);
          }
      }
      foreach (IDisposable disposable in disposables)
      {
          disposable.Dispose();
      }
  }
  </code></pre>
  
  <p>Thank you!</p>