title: Why use ReadDirectoryChangesW asynchronously?
body: <p>I've read the documentation for <code>ReadDirectoryChangesW()</code> and also seen the <a href="http://www.codeproject.com/Articles/950/CDirectoryChangeWatcher-ReadDirectoryChangesW-all" rel="nofollow noreferrer"><code>CDirectoryChangeWatcher</code> project</a>, but neither say <em>why</em> one would want to call it asynchronously.  I understand that the <em>current</em> thread will not block, but, at least for the CDirectoryChangeWatcher code that uses a completion port, when it calls <code> GetQueuedCompletionStatus()</code>, <em>that</em> thread blocks anyway (if there are no changes).</p>
  
  <p>So if I call <code>ReadDirectoryChangesW()</code> synchronously in a separate thread in the first place that I don't care if it blocks, why would I ever want to call <code>ReadDirectoryChangesW()</code> asynchronously?</p>