private void DownloadItem() { if (_activeDownloads.Count >= ParallelDownloads) { return; } DownloadManagerItem item = null; try { item = _queue.Dequeue(); } catch { // ignored } if (item != null) { item.DownloadItemDownloadCompleted += (sender, args) => { if (args.Error != null) { Logger.Error(args.Error, "Error downloading track {0}", ((DownloadManagerItem)sender).Item.VideoId); } _activeDownloads.Remove((DownloadManagerItem)sender); }; _activeDownloads.Add(item); item.StartDownload(); } }
public void AddToQueue(DownloadManagerItem item) { _queue.Enqueue(item); StartManager(); }