J'utilise la méthode DownloadFileAsync
de WebClient
pour télécharger des fichiers à partir d'un serveur, et je ne peux m'empêcher de remarquer que dans mes tests informels de mon code dans VS2010, il bloque pendant environ 3 secondes au démarrage, ce qui, à mon avis, en quelque sorte défait le but en premier lieu.Est-ce que WebClient.DownloadFileAsync est vraiment lent?
Voici l'extrait pertinent du code:
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
J'utilise DownloadFileAsync
pour maintenir l'interface utilisateur de bloquer pendant que l'application télécharge un fichier ~ 100 Mo. Évidemment, si l'interface utilisateur bloque pendant 3 secondes pendant que l'appel commence, cela diminue quelque peu l'utilité, sinon complètement. Je suis relativement inexpérimenté avec C# /. Net (j'ai fait un tas de choses .Net 2.0 il y a environ 3 ou 4 ans, IIRC, mais je le réapprends tout de suite).
Merci, ça a parfaitement fonctionné! Pour ceux qui rencontrent le même problème, définissez la propriété 'Proxy' de l'internaute sur null avant d'appeler le téléchargement. – Zoey