Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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;
    }