/// <summary> /// 开始分析 /// </summary> public override async Task Action() { try { DownloadHelper downloadHelper = new DownloadHelper(); while (!Base.CancelTokenSource.IsCancellationRequested) { TaskSupervisor.DisposeInvalidTask(); if (WaitImageUrlQueue.Count < 1) { base.Progress("[下载器休眠]图片队列下载完毕,等待分析器...", WaitImageUrlQueue.Count); await Task.Delay(2000); continue; } string imageUrl = Dequeue(); // imageUrl = imageUrl.Replace("http://www.unluoli.com/", ""); // imageUrl = imageUrl.Insert(0, "http://www.unluoli.com/"); if (!ExistList.Contains(imageUrl)) { base.Progress("[下载器任务]URL:{0}", imageUrl); Task task = new Task(delegate { downloadHelper.DownLoadImage(imageUrl); }, Base.CancelTokenSource.Token); bool result = TaskSupervisor.Add(task); if (!result) { base.Progress("[下载器休眠]下载队列已满,等待...", WaitImageUrlQueue.Count); await Task.Delay(2000); WaitImageUrlQueue.Enqueue(imageUrl); continue; } ExistList.Add(imageUrl); } } TaskSupervisor.DisposeInvalidTask(); } catch (Exception ex) { throw; } }
/// <summary> /// 开始分析 /// </summary> public override async Task Action() { try { DownloadHelper downloadHelper = new DownloadHelper(); while (!CancelTokenSource.IsCancellationRequested) { TaskSupervisor.DisposeInvalidTask(); if (WaitDownLoadImageUrlQueue.Count < 1) { Progress("[图片下载器]图片队列为空..."); await Task.Delay(1000); continue; } string imageUrl = Dequeue(); if (!ExistImageUrlList.Contains(imageUrl)) { Task task = new Task(() => { Progress("[图片下载器]正在下载图片URL:{0}\t保存路径为:{1}", imageUrl, downloadHelper.DownLoadImage(imageUrl, SaveFolder)); }, CancelTokenSource.Token); bool result = TaskSupervisor.Add(task); if (!result) { Progress("[图片下载器]下载队列已满,等待...", WaitDownLoadImageUrlQueue.Count); await Task.Delay(1000); WaitDownLoadImageUrlQueue.Enqueue(imageUrl); continue; } ExistImageUrlList.Add(imageUrl); } } TaskSupervisor.DisposeInvalidTask(); } catch (Exception ex) { Progress("[图片下载器]发生异常:" + ex.ToString()); } }