title: WebClient DownloadString stuck
body: <p>I have this class that Inheritance <code>WebClient</code> :</p>
  
  <pre><code>public class WebDownload : WebClient
  {
      /// &lt;summary&gt;
      /// Time in milliseconds
      /// &lt;/summary&gt;
      public int Timeout { get; set; }
  
      public WebDownload() : this(10000) { }
  
      public WebDownload(int timeout)
      {
          this.Timeout = timeout;
      }
  
      protected override WebRequest GetWebRequest(Uri address)
      {
          var request = base.GetWebRequest(address);
          if (request != null)
          {
              request.Timeout = this.Timeout;
          }
          return request;
      }
  }
  </code></pre>
  
  <p>And in my code i loop over a lot of <code>Urls</code> and download the one after one with :</p>
  
  <pre><code>string source;
  using (WebDownload client = new WebDownload()) // WebClient class inherits IDisposable
  {
      client.Headers.Add("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:26.0) Gecko/20100101 Firefox/26.0");
      source = client.DownloadString(url);
  }
  
  return source;
  </code></pre>
  
  <p>And i have a problem that sometimes the code stuck on this method:</p>
  
  <pre><code>source = client.DownloadString(url);
  </code></pre>
  
  <p>Any idea why it happen? I put a <code>Timeout</code> of 10 seconds to stop the request if it fails.</p>