Хорошо, я посмотрю на это, спасибо за ваши ответы.

я есть WebClient, который я использую для загрузки файла следующим образом, base64Encoded - это изображение, закодированное в виде строки base64, поскольку именно этого ожидает сервер imgur:

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

Это обработчик события для UploadProgressChanged:

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

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

Теперь моя проблема в том, что обработчик событий вызывается только один раз в самом начале, сообщаетProgressPercentage 50 и тогда больше не вызывается. Файл успешно загружен, но мой индикатор не работает. Это не потому, что я загружаю небольшой файл, поскольку я также пробовал это с файлами размером несколько мегабайт, которые также сообщаютProgressPercentage из 50 сразу.e.BytesSent тоже не поможет, потому что это равноe.TotalBytesToSend сразу же. Что здесь происходит?

Ответы на вопрос(1)

Ваш ответ на вопрос