.net-4.0 - TPL - MaxDegreeOfParallelism 和 MaximumConcurrencyLevel 之间的区别

标签 .net-4.0 task-parallel-library

ParallelOptions.MaxDegreeOfParallelism有什么区别和 ParallelOptions.TaskScheduler.MaximumConcurrencyLevel ?你什么时候用?

最佳答案

使用反射器,我收集到两者都用于 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;
    }
}

关于.net-4.0 - TPL - MaxDegreeOfParallelism 和 MaximumConcurrencyLevel 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5235613/

相关文章:

.net-2.0 - 引用 .net 2 程序集时,.Net 4 应用程序中会发生什么?

c# - 在 .NET 中使用 TPL

c# - 使用 Task.Run 时避免捕获当前执行上下文

c# - 线程应用问题

c# - 元组有什么用处?

java - 在asp.net 4.0应用程序中使用Java .jar包?

c# - 如何让 .NET 4 应用程序的主窗体出现在最前面?

c# - 使用 TPL 和进程外 COM 服务器的 C# WPF 应用程序出现奇怪问题

c# - 如何使用任务并行库从SQL表中批量读取大量记录

c# - 异步EF 6.0比同步花费的时间更长