title: DirectorySearcher Asynchronous using await
body: <p>I'm using .net 4.7.2 (not core) and C#.</p>
  
  <p>I need to come up with a way to to not block my current async tasks and I have a need to search for a user as part of these tasks.  I've done DirectorySearcher operations previously so I know the attachment to AD and first search can take a few seconds which will really throw a wrench in the gears if I try calling it from my existing async methods.</p>
  
  <p>I found that the DirectorySearcher has an "Asynchronous" property.  But I don't think it does the async pattern.</p>
  
  <pre><code>        DirectorySearcher ds = new DirectorySearcher();
          ds.Asynchronous = true;
          ds.Filter = "(&amp;(objectclass=user)(samaccountname=testaccount)";
          ds.PropertiesToLoad.Add("samaccountname");
          SearchResult sr = await ds.FindOne();
  </code></pre>
  
  <p>Of course, the last line throws an error because FindOne is not an async method.  I already know that if I remove the await it will compile.  But that doesn't solve my problem with calling this from existing awaited methods.  I need to find a way to do an async search in AD...</p>
  
  <p>Does anyone know how I could get this to work in the .net framework (not core)?</p>