فهرست منبع

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

懒得勤快 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));
-            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);
             }
         }