16

Web クライアントを使用してファイルをサーバーにアップロードするアプリがあります。ファイルのアップロードの進行中にプログレスバーを表示したいと思います。これを達成するにはどうすればよいですか?

4

2 に答える 2

26

WebClient.UploadFileAsyncを使用すると、これを行うことができます。

WebClient webClient = new WebClient();
webClient.UploadFileAsync(address, fileName);
webClient.UploadProgressChanged += WebClientUploadProgressChanged;

...

void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
        Console.WriteLine("Upload {0}% complete. ", e.ProgressPercentage);
}

アップロード時にスレッドがブロックされなくなることに注意してください。そのため、次の使用をお勧めします。

 webClient.UploadFileCompleted += WebClientUploadCompleted;

...

 void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e)
 {
     // The upload is finished, clean up
 }
于 2009-06-11T17:00:09.557 に答える
2

イベント ハンドラーを WebClient.UploadProgressChanged に追加し、WebClient.UploadFileAsync を呼び出します。

例については、 WebClient.UploadProgressChangedのドキュメントを参照してください。

于 2009-06-11T17:01:44.220 に答える