DownloadFileAsync
サーバーからいくつかのファイルをダウンロードする方法を使用してWebClient
いますが、VS2010 内でコードを非公式にテストしたところ、起動中に約 3 秒間ブロックされることに気付きました。そもそも目的を打ち負かします。
関連するコードのスニペットは次のとおりです。
WebClient downloader = new WebClient();
downloader.DownloadProgressChanged += new DownloadProgressChangedEventHandler(updateDownloadProgress);
downloader.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(downloadCompleted);
var current_map = map_downloads[0];//string with filename, map_downloads is List<string>
var path = System.IO.Path.GetTempFileName();
downloaded_maps.Add(path);//adding the temp file to a List<string>
downloader.DownloadFileAsync(new Uri(MAP_BASE + current_map), path); //MAP_BASE is a string containing the base url
DownloadFileAsync
アプリケーションが ~100 MB のファイルをダウンロードしている間、UI がブロックされないようにするために使用しています。明らかに、通話の開始中に UI が 3 秒間ブロックされると、完全ではないにしても、ユーティリティがいくらか低下します。
私は比較的 C#/.Net の経験がありません (3 ~ 4 年前、IIRC で .Net 2.0 をたくさんやりましたが、今は基本的に再学習しています)。