我正在使用从服务器下载一些文件的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
当应用程序下载约 100 MB 的文件时,我DownloadFileAsync
用来防止 UI 阻塞。显然,如果在呼叫开始时 UI 阻塞 3 秒,这会在一定程度上减少实用程序,如果不是完全的话。
我对 C#/.Net 相对缺乏经验(大约 3-4 年前,我做了一堆 .Net 2.0 的东西,IIRC,但我现在基本上正在重新学习它)。