title: Download blobs from azure storage asynchronously and save them in DataTable
body: <p>The following code shows how I download blobs from azure blob storage and save them into a DataTable:</p>
  
  <pre><code>foreach (var currIndexGroup in blobsGroupedByIndex)
  {
      DataRow dr = dtResult.NewRow();
      foreach (var currIndex in currIndexGroup)
      {       
          long fileByteLength = currIndex.Properties.Length;
          byte[] serializedAndCompressedResult = new byte[fileByteLength];
          currIndex.DownloadToByteArray(serializedAndCompressedResult, 0);
          dr[currIndex.Metadata["columnName"]] = DeflateStream.UncompressString(serializedAndCompressedResult);
      }
      dtResult.Rows.Add(dr);
  }
  </code></pre>
  
  <p>The problem is, that the download is pretty slow. 1000 real small blobs takes about 20 seconds to download. If I try to run it asynchronously by using <code>currIndex.DownloadToByteArrayAsync(serializedAndCompressedResult, 0);</code> the follow up line throws an exception <code>Bad state (invalid stored block lengths)</code>.</p>
  
  <p>What is the right way to fill this datatable asynchronously?</p>