TPL - Difference between MaxDegreeOfParallelism and MaximumConcurrencyLevel

What is the difference between ParallelOptions.MaxDegreeOfParallelism and ParallelOptions.TaskScheduler.MaximumConcurrencyLevel ? When will you use?

+6
task-parallel-library
source share
1 answer

Using a reflector, I realized that both of them are used in the EffectiveMaxConcurrencyLevel property:

 internal int EffectiveMaxConcurrencyLevel { get { int maxDegreeOfParallelism = this.MaxDegreeOfParallelism; int maximumConcurrencyLevel = this.EffectiveTaskScheduler.MaximumConcurrencyLevel; if ((maximumConcurrencyLevel > 0) && (maximumConcurrencyLevel != 0x7fffffff)) { maxDegreeOfParallelism = (maxDegreeOfParallelism == -1) ? maximumConcurrencyLevel : Math.Min(maximumConcurrencyLevel, maxDegreeOfParallelism); } return maxDegreeOfParallelism; } } 
+8
source share

All Articles