private void CheckFileSize(UriBasedCollection <long> fileSizes, Uri url, string cookies) { Assert.IsNotNull(url, "url"); try { using (var response = WebRequestHelper.RequestAndGetResponse(url, 60000, 60000, cookies)) { var fileSize = response.ContentLength; fileSizes[url] = fileSize; } } catch (Exception ex) { Log.Error("Error while downloading {0}".FormatWith(url.ToString()), this, ex); } }
private UriBasedCollection <long> GetSizes(ReadOnlyCollection <Uri> urls, string cookies) { UriBasedCollection <long> sizes = new UriBasedCollection <long>(); int parallelDownloadsNumber = WindowsSettings.AppDownloaderParallelThreads.Value; for (int i = 0; i < urls.Count; i += parallelDownloadsNumber) { int remains = urls.Count - i; var tasks = urls .Skip(i) .Take(Math.Min(parallelDownloadsNumber, remains)) .Select(url => Task.Factory.StartNew(() => this.CheckFileSize(sizes, url, cookies))) .ToArray(); Task.WaitAll(tasks, remains * 60000); } return(sizes); }
private void CheckFileSize(UriBasedCollection<long> fileSizes, Uri url, string cookies) { Assert.IsNotNull(url, "url"); try { using (var response = WebRequestHelper.RequestAndGetResponse(url, 60000, 60000, cookies)) { var fileSize = response.ContentLength; fileSizes[url] = fileSize; } } catch (Exception ex) { Log.Error(ex, "Error while downloading {0}", url.ToString()); } }
private UriBasedCollection<long> GetSizes(ReadOnlyCollection<Uri> urls, string cookies) { UriBasedCollection<long> sizes = new UriBasedCollection<long>(); int parallelDownloadsNumber = WindowsSettings.AppDownloaderParallelThreads.Value; for (int i = 0; i < urls.Count; i += parallelDownloadsNumber) { int remains = urls.Count - i; var tasks = urls .Skip(i) .Take(Math.Min(parallelDownloadsNumber, remains)) .Select(url => Task.Factory.StartNew(() => this.CheckFileSize(sizes, url, cookies))) .ToArray(); Task.WaitAll(tasks, remains * 60000); } return sizes; }