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; } }
SFun28
source share