title: What does CloudQueue.EndAddMessage(IAsyncResult) actually do?
body: <p>Let's say I call</p>
  
  <pre><code>AsyncCallback callback = new AsyncCallback(QueueMessageAdded);
  queue.BeginAddMessage(new CloudQueueMessage(message), callback, null);
  </code></pre>
  
  <p>where <code>QueueMessageAdded</code> is</p>
  
  <pre><code>private static void QueueMessageAdded(IAsyncResult result)
  {
      queue.EndAddMessage(result);
  }
  </code></pre>
  
  <p>What does <strong>EndAddMessage</strong> do?</p>
  
  <p>Including waiting for all callbacks to have been called, it is as slow as calling the synchronous version like this:</p>
  
  <pre><code>Parallel.ForEach(messages, message =&gt; queue.AddMessage(message));
  </code></pre>