Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        public void AddToQueue(DownloadManagerItem item)
        {
            _queue.Enqueue(item);

            StartManager();
        }