public TaskDownloadTitle AddTitleToDownload(Title title, string template, string pathToDownload)
        {
            var downloadTask = new TaskDownloadTitle(title, template, pathToDownload);

            AddTaskToDownload(downloadTask);
            return(downloadTask);
        }
 private void CreateDonloadTask(TaskDownloadTitle task)
 {
     Task.Run(() =>
     {
         var FolderWithChapters             = Path.Combine(task.FolderToDownload, task.Title.NameRu);
         ChapterDownloader downloader       = new ChapterDownloader(FolderWithChapters);
         downloader.Downloaded             += () => Downloaded(task);
         downloader.DownloadProgresChanged += () =>
         {
             Interlocked.Increment(ref task.Progress.DownloadedImages);
             DownloadProgresChanged(task);
         };
         var listTask = from index in task.IndexNumbersForDownload
                        select downloader.AddToDownload(task.Title[index]);
         Task <int>[] tasks        = listTask.ToArray();
         int[] count               = Task.WhenAll(tasks).Result;
         task.Progress.CountImages = count.Sum();
         downloader.StartDownload(task.cancellationToken);
     });
 }
 public void AddTaskToDownload(TaskDownloadTitle task)
 {
     queue.Enqueue(task);
     queueAddedEvent.Set();
 }