Scope of Parallel.Foreach MaxDegreeOfParallelism

本文关键字:MaxDegreeOfParallelism Foreach Parallel of Scope | 更新日期: 2023-09-27 18:36:05

我正在使用Parallel.Foreach来处理多个并发任务。我通过指定MaxDegreeOfParalellism来限制并发操作的数量。所以现在如果我在该任务之外启动另一个任务,是否会对该任务应用最大并发操作限制。

Parallel.ForEach(tasks, new ParallelOptions { MaxDegreeOfParallelism = MaxInstances }, task=>
                    {////Some OPeration///}

Task.Factory.StartNew(action)

如果最大限制为 8,并且 Foreach 中已在运行 8 个并发任务。foreach 之外的任务是否会运行?

Scope of Parallel.Foreach MaxDegreeOfParallelism

不,应用于Parallel.ForEach()的选项仅影响该Parallel.ForEach(),它们不会直接影响任何其他代码。

(实际上,您限制Parallel.ForEach()越多,其他Task立即执行的可能性就越大。这是因为您的Parallel.ForEach()将使用更少的线程来自ThreadPool,将更多的线程留给其他人。

相关文章:
  • 没有找到相关文章