title: Do I need to call Close() on a ManualResetEvent?
body: <p>I've been reading up on .NET Threading and was working on some code that uses a <a href="http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx" rel="noreferrer">ManualResetEvent</a>.  I have found lots of code samples on the internet.  However, when reading the documentation for <a href="http://msdn.microsoft.com/en-us/library/system.threading.waithandle.aspx" rel="noreferrer">WaitHandle</a>, I saw the following:</p>
  
  <blockquote>
    <p>WaitHandle implements the Dispose
    pattern. See Implementing Finalize and
    Dispose to Clean Up Unmanaged
    Resources.</p>
  </blockquote>
  
  <p>None of the samples seem to call .Close() on the ManualResetEvent objects they create, <em>even the nice <a href="http://blogs.msdn.com/pfxteam/archive/2008/01/31/7357135.aspx" rel="noreferrer">Recursion and Concurrency</a> article from the pfxteam blog</em> (<strong><em>Edit</strong> - this has a using block I has missed</em>).  Is this just example oversight, or not needed?  I am curious because a WaitHandle "encapsulates operating system–specific objects," so there could easily be a resource leak.</p>