【发布时间】:2010-06-04 09:43:52
【问题描述】:
我正在使用WebClient 的DownloadFileAsync 方法从服务器下载一些文件,我不禁注意到,在我在VS2010 中对我的代码进行非正式测试时,它会阻塞大约3 秒,而它开始了,在我看来,这首先违背了目的。
这里是相关的sn-p代码:
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 来防止 UI 在应用程序下载约 100 MB 文件时阻塞。显然,如果在调用开始时 UI 阻塞 3 秒,这会在一定程度上降低实用程序,如果不是完全的话。
我对 C#/.Net 相对缺乏经验(大约 3-4 年前,我做了一堆 .Net 2.0 的东西,IIRC,但我现在基本上正在重新学习它)。
【问题讨论】:
标签: c# performance webclient downloadfileasync