O WebClient.UploadValuesAsync não atualiza o progresso corretamente

Eu tenho um WebClient que eu uso para fazer upload de um arquivo da seguinte maneira, base64Encoded é uma imagem codificada como uma string base64, pois é isso que o servidor imgur espera:

    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);        
    }

Este é o manipulador de eventos para o UploadProgressChanged:

    private void webClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
    {
        int percentage = e.ProgressPercentage * 2;

        progressBar.Value = percentage;
        percentageTextBlock.Text = (percentage).ToString() + "%";
    }

Agora, meu problema é que o manipulador de eventos é chamado apenas uma vez logo no início, relata umProgressPercentage de 50 e não está mais sendo chamado. O arquivo é enviado com sucesso, mas minha barra de progresso não está funcionando. Isso não ocorre porque estou carregando um arquivo pequeno, pois também tentei isso com arquivos de vários mb, que também relatam umaProgressPercentage de 50 imediatamente.e.BytesSent também não ajuda, porque esse é igual ae.TotalBytesToSend imediatamente também. O que está acontecendo aqui?

questionAnswers(1)

yourAnswerToTheQuestion