/// <summary> /// 执行抓取 /// </summary> private void DoPick() { Task.Run(() => { List <Type> managerList = ReflectionHelper.GetClasses <PickerManager>();//.Where(t => t.Name == "JSK3PickerManager").ToList(); ParallelOptions options = new ParallelOptions { MaxDegreeOfParallelism = 10 }; Parallel.ForEach(managerList, type => { try { PickerManager pickerManager = Activator.CreateInstance(type) as PickerManager; while (true) { try { List <OpenResult> list = pickerManager.DoPick(TaskCount); int result = OpenResultApp.Insert(list); if (result < 0) { lock (locker) { log.Error($"插入结果到数据库失败。数量:{list.Count},类型:{type.ToString()}"); } } Thread.Sleep(SleepTime); } catch (Exception ex) { lock (locker) { this.log.Error($"抓取异常。详情:{ex.ToString()}"); } Thread.Sleep(SleepTime); } } } catch (Exception ex) { lock (locker) { this.log.Error($"抓取异常。详情:{ex.ToString()}"); } } }); }); }