TPL-разница между MaxDegreeOfParallelism и MaximumConcurrencyLevel
в чем разница между ParallelOptions.MaxDegreeOfParallelism
и ParallelOptions.TaskScheduler.MaximumConcurrencyLevel
? Когда вы будете использовать либо?
1 ответов
используя рефлектор, я собрал, что оба используются в EffectiveMaxConcurrencyLevel
свойства:
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;
}
}