title: C# IAsyncResult WaitAll
body: <p>In some of the implementations of WaitAll I have seen the following code</p>
  
  <pre><code>IAsyncResult result1 = Method.BeginInvoke(10, MyCallback, null)
  IAsyncResult result2 = Method.BeginInvoke(20, MyCallback, null)
  WaitHandle[] waitHandles = new WaitHandle[] { result1.AsyncWaitHandle, result2.AsyncWaitHandle};
  WaitHandle.WaitAll(waitHandles)
  </code></pre>
  
  <p>Does this seem right ? What are the chances that before the waitHandles array is created one of the calls complete ?</p>
  
  <p>Regards,
  Dhananjay</p>