浏览代码

让并行循环一直保持在最大并行数运行

懒得勤快 3 年之前
父节点
当前提交
dd964508c5
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      Masuit.Tools.Abstractions/Extensions/BaseType/IEnumerableExtensions.cs

+ 3 - 3
Masuit.Tools.Abstractions/Extensions/BaseType/IEnumerableExtensions.cs

@@ -489,10 +489,10 @@ public static class IEnumerableExtensions
             }
             }
 
 
             list.Add(action(item));
             list.Add(action(item));
-            if (list.Count >= maxParallelCount)
+            if (list.Count(t => !t.IsCompleted) >= maxParallelCount)
             {
             {
-                await Task.WhenAll(list);
-                list.Clear();
+                await Task.WhenAny(list);
+                list.RemoveAll(t => t.IsCompleted);
             }
             }
         }
         }