0

私はこの問題を抱えています:私のフォームにはプログレスバーとラベルがあります.私の目標は、ダウンロードの進行状況を表示し、ラベルにバイト数を表示することです. 値がバックグラウンド ワーカーからのものであるため、次のコードを使用します。

void WebClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
    string sFormatted = string.Format("{0} of {1}", e.BytesReceived, e.TotalBytesToReceive);

    Invoke(new MethodInvoker(delegate
    {
        myProgressBar.Value = e.ProgressPercentage;
        myLabel.Text = sFormatted;
    }));
}

このコードは正常に動作しますが、しばらくするとプログレスバーが更新され、ラベルが正しく更新されます。

例: ダウンロードする 10000 バイトがあり、5000 をダウンロードしました。ラベルには 10000 のうち 5000 が正しく表示されますが、バーは 50 ではなく 30% のようです...

どうすればこれを解決できますか?

前もって感謝します

4

0 に答える 0