Ich verwende die DownloadFileAsync
Methode von WebClient
einige Dateien von einem Server herunterzuladen, und das kann ich in meiner informellen Prüfung meines Codes innerhalb VS2010, blockiert es für ca. 3 Sekunden nicht umhin zu bemerken, während er beginnt, die, Meiner Meinung nach macht die Art den Zweck zunichte.Ist WebClient.DownloadFileAsync wirklich so langsam?
Hier ist der relevante Code-Snippet:
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
ich DownloadFileAsync
bin mit dem UI zu halten blockiert, während die Anwendung einer herunterlädt ~ 100 MB-Datei. Offensichtlich, wenn die UI 3 Sekunden lang blockiert, während der Anruf startet, verringert das den Nutzen etwas, wenn nicht sogar ganz.
Ich bin relativ unerfahren mit C# /. Net (Ich habe eine Menge .Net 2.0 Sachen vor etwa 3-4 Jahren, IIRC, aber ich bin im Grunde neu lernen es jetzt).
Danke, das perfekt funktioniert! Für diejenigen, die gleiche Problem auftritt, nur die ‚Proxy‘ Eigenschaft auf null gesetzt ist webclient vor dem Download aufrufen. – Zoey