1

C# Windows サービス アプリの webdav サーバーから巨大な (~1 GB) メディア ファイルをダウンロードする必要がある状況があります。私はどちらがより良いアプローチであるかを考えていました:

  • WebClient 非同期メソッドを使用して配列に格納されたファイルをダウンロードし、メイン スレッドでコールバックしてダウンロードの完了を通知します。手動リセット イベントを同期に使用できます
  • バックグラウンド ワーカーと Web クライアントの同期ダウンロード メソッドを使用する
  • ThreadPool と Web クライアントの同期ダウンロード メソッドを使用する
  • 手動スレッドと Web クライアントの同期ダウンロード メソッドを使用する

Web クライアントの非同期ダウンロード API を試してみましたが、メディアのダウンロードを初期化した後にメイン スレッドで Web サービスを呼び出すと、メイン スレッドがブロックされたように見え、最終的に Operation Timed Out がスローされ、ブロックされていないように見えます。メディア ファイルは並行してダウンロードされるのではなく、ダウンロード フォルダーで見られるように 1 つずつダウンロードされます。

あなたの提案は何でしょう。

4

0 に答える 0