Browse Source

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

懒得勤快 3 years ago
parent
commit
dd964508c5

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

@@ -489,10 +489,10 @@ public static class IEnumerableExtensions
             }
 
             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);
             }
         }