ダウンロードが進行中のUIで表示中にファイルをダウンロードしたい。Thread.Start(WebRequest.GetResponse)とWebRequest.BeginGetResponse
使用
WebRequest.BeginGetResponse
および関連する方法:WebRequest
で、私は2つのオプションがあります。利点:正確な進捗状況をバイトで表示することができます。
短所:より多くのコードを記述する。同期メソッドと非同期メソッドが混在しないので、
BeginGetResponse
,BeginRead
,BeginGetRequestStream
を使用する必要があります。読み取りバッファ、タイムアウトなど、手動で実装することが多くあります。新しいスレッドを開始(またはスレッドプールを使用)するには、
WebRequest.GetResponse
と関連するメソッドを使用してください。利点:不要なコードはありません。
短所:正確な進捗状況を示すことはできません。
ダウンロードするファイルが小さいので、進行状況をバイト単位で表示するのが有利ですが、重要ではありません。私は2番目のアプローチを、機能的にもパフォーマンス的にも使用すると、何かが恋しくなるのですか?
多分、私が見逃した上位レベルの広く使われているラッパーがありますか? (WebClient
はWebRequest
のプロパティを公開していないので、私はクッキーなどを使用する必要があるため私にとっては使用できません)
正確な進捗状況を表示できないのはなぜですか? –
@HPT 'GetResponse'はリクエストが完全に実行されたときにのみ返ると思います。したがって、それを呼び出す前に0%、後に100%、何も間にありません。私が間違っている? – Athari
はい、私のせいです、ごめんなさい –