title: WebClient.UploadValuesAsync not updating progress properly
body: <p>I have a WebClient which I use to upload a file in the following way, base64Encoded is a picture encoded as a base64 string as that is what the imgur server expects:</p>
  
  <pre><code>    public Upload()
      {
          WebClient webClient = new WebClient();
          webClient.UploadProgressChanged += new UploadProgressChangedEventHandler(webClient_UploadProgressChanged);
          webClient.UploadValuesCompleted += new UploadValuesCompletedEventHandler(webClient_UploadValuesCompleted);    
  
          NameValueCollection values = new NameValueCollection();
          values.Add("key", "imgur api key");
          values.Add("image", base64Encoded);
          webClient.UploadValuesAsync(new Uri("http://api.imgur.com/2/upload"), "POST", values);        
      }
  </code></pre>
  
  <p>This is the event handler for the UploadProgressChanged:</p>
  
  <pre><code>    private void webClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
      {
          int percentage = e.ProgressPercentage * 2;
  
          progressBar.Value = percentage;
          percentageTextBlock.Text = (percentage).ToString() + "%";
      }
  </code></pre>
  
  <p>Now my problem is that the event handler is only called once right at the start, reports a <code>ProgressPercentage</code> of 50 and is then not being called anymore. The file uploads successfully, but my progressbar is not working. This is not because I'm uploading a small file as I've also tried this with files of several mb which also report a <code>ProgressPercentage</code> of 50 right away. <code>e.BytesSent</code> is no help either because that one is equal to <code>e.TotalBytesToSend</code> right away as well. What is going on here?</p>