投稿者 YuO  (社会人) 投稿日時 2011/10/15 15:56:11
非同期ですから,DownloadFileAsyncを呼び出したら,ダウンロードが終了しなくてもそのスレッドの実行を継続します。

WebClient.DownloadFileAsyncはイベントベースの非同期I/Oなので,
ダウンロードが終了したらDownloadFileCompletedイベントが発生します。
MSDN: WebClient.DownloadFileAsync メソッド (Uri, String) (System.Net)
http://msdn.microsoft.com/ja-jp/library/ms144196.aspx

たぶん,BackgroundWorker使ってDownloadFileでダウンロードしていくのが簡単だと思います。
ただし,UIへのアクセスができないので,その部分を考えて処理する必要があります。

イベント処理するとかTask.ContinueWithとかRxとかありますが,
結局BackgorundWorkerで内部は同期で書く方法で書くのが基本になると思います。