title: DownloadStringAsync() does not download the string asynchronously
body: <p>Trying to implement <code>downloadStringAsync()</code> to prevent UI freezing for 10 seconds when downloading <em>one byte</em> of data.  However, even though the download completes, it is freezing the UI just as if I used <code>downloadString()</code>.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>    public void loadHTML()
      {
              WebClient client = new WebClient();
  
              // Specify that the DownloadStringCallback2 method gets called
              // when the download completes.
              client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(loadHTMLCallback);
              client.DownloadStringAsync(new Uri("http://www.example.com"));
              return;
      }
  
      public void loadHTMLCallback(Object sender, DownloadStringCompletedEventArgs e)
      {
          // If the request was not canceled and did not throw
          // an exception, display the resource.
          if (!e.Cancelled &amp;&amp; e.Error == null)
          {
              string result = (string)e.Result;
  
              // Do cool stuff with result
  
          }
      }
  </code></pre>