コード例 #1
0
 public void QueueDownloader(HttpDownloader downloader)
 {
     lock (SyncRoot) {
         PendingDownloaders.Enqueue(downloader);
         Update();
     }
 }
コード例 #2
0
 void Update()
 {
     lock (SyncRoot) {
         while (PendingDownloaders.Count > 0 && active_downloaders.Count < MaxConcurrentDownloaders)
         {
             var downloader = PendingDownloaders.Peek();
             downloader.Started       += OnDownloaderStarted;
             downloader.Finished      += OnDownloaderFinished;
             downloader.Progress      += OnDownloaderProgress;
             downloader.BufferUpdated += OnDownloaderBufferUpdated;
             active_downloaders.Add(downloader);
             PendingDownloaders.Dequeue();
             downloader.Start();
         }
     }
 }