private async Task ExecuteImp(IJobExecutionContext context) { //4 爬img var start = DateTime.Now; ShowAndLog($"爬img start:{start}"); DishImgRawData imgs = GetDishDetails(); ParallelOptions parallelOptions = new ParallelOptions() { MaxDegreeOfParallelism = 50, }; Parallel.ForEach(imgs, parallelOptions , (img) => { try { CrawlerHelper.DownloadImgAndSave(img); Console.Write("."); } catch (System.Net.WebException ex) { ShowAndLog($"{img.SourcrUrl}:{ex.Message} {ex.InnerException?.Message}"); Thread.Sleep(100); } } ); var end = DateTime.Now; ShowAndLog($"爬img end:{end} 耗时:{end.Subtract(start).TotalMinutes}"); }