Sto utilizzando il metodo DownloadFileAsync
di WebClient
per scaricare alcuni file da un server e non posso fare a meno di notare che nei miei test informali del mio codice in VS2010, esso blocca per circa 3 secondi durante l'avvio, che, a mio parere, tipo di sconfitte lo scopo in primo luogo.WebClient.DownloadFileAsync è davvero lento?
Ecco il relativo frammento di codice:
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
sto usando DownloadFileAsync
per mantenere l'interfaccia utente di bloccare mentre l'applicazione scarica un file ~ 100 MB. Ovviamente se l'UI blocca per 3 secondi mentre inizia la chiamata, ciò diminuisce un po 'l'utilità, se non interamente.
Sono relativamente inesperto con C# /. Net (ho fatto un sacco di cose di .Net 2.0 circa 3-4 anni fa, IIRC, ma fondamentalmente sto riappacificandolo ora).
Grazie, che ha funzionato perfettamente! Per coloro che hanno lo stesso problema, è sufficiente impostare la proprietà "Proxy" del client Web su null prima di chiamare il download. – Zoey