我使用DownloadFileAsync
方法WebClient
從服務器上下載一些文件,我不禁注意到,在VS2010中對我的代碼進行非正式測試時,它在啓動時會阻塞大約3秒,在我看來,首先是擊敗了目的。WebClient.DownloadFileAsync真的這麼慢嗎?
這裏是代碼中的相關片段:
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,但我現在基本上是在重新學習它)。
謝謝,非常完美! 對於遇到同樣問題的用戶,只需在調用下載之前將web客戶端的「代理」屬性設置爲空。 – Zoey 2012-05-10 08:44:41