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(); }