소스 검색

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

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