Tôi đang sử dụng phương thức DownloadFileAsync
WebClient
để tải xuống một số tệp từ máy chủ và tôi không thể không nhận thấy rằng trong thử nghiệm không chính thức mã của tôi trong VS2010, nó sẽ chặn khoảng 3 giây trong khi bắt đầu, trong loại ý kiến của tôi đánh bại mục đích ở nơi đầu tiên.WebClient.DownloadFileAsync có thực sự chậm không?
Dưới đây là đoạn mã có liên quan của mã:
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
Tôi đang sử dụng DownloadFileAsync
để giữ cho giao diện người dùng từ chặn khi các ứng dụng tải về một tập tin MB ~ 100. Rõ ràng nếu giao diện người dùng chặn trong 3 giây trong khi cuộc gọi bắt đầu, điều đó làm giảm tiện ích một chút, nếu không hoàn toàn.
Tôi khá thiếu kinh nghiệm với C# /. Net (Tôi đã thực hiện một loạt các công cụ .Net 2.0 khoảng 3-4 năm trước, IIRC, nhưng về cơ bản tôi đang chuyển đổi nó ngay bây giờ).
Cảm ơn, mà làm việc một cách hoàn hảo! Đối với những người gặp sự cố tương tự, chỉ cần đặt thuộc tính 'Proxy' của webclient thành null trước khi gọi tải xuống. – Zoey