title: Just how 'disposable' is ReaderWriterLockSlim?
body: <p>I principally follow the <code>IDisposable</code> pattern, and for most classes that is justified. But <code>ReaderWriterLockSlim</code> made me question the viability of applying such pattern. All <code>ReaderWriterLockSlim.Dispose</code> does is close some event handles. So how important is it to <code>Dispose</code> such class with so few resources? In this case, I really wouldn't mind if the GC had to wait another round for the finalizers of the unmanaged resources to finish.</p>
  
  <p>The consequence for applying the <code>IDisposable</code> pattern is considerable however, every class that uses a disposable class now has to implement <code>IDisposable</code> too. In my particular case, I am implementing a wrapper for <code>HashSet</code>. I don't particularly expect the requirement to dispose such object because, accidently, it uses a synchronizer which does.</p>
  
  <p>Are there any reasons not to violate the disposable pattern in this case? While I am eager to, I wouldn't do so in practice, because violating consistency is much worse. </p>