如何获得任务并行库使用的最大并行度?

我想使用Parallel.invoke。 如果我分配20个并行任务,则只有8个并发运行。 我的CPU是http://ark.intel.com/products/47925 ,报告的线程数是8.我假设可以并行运行的任务数与线程的cpu数有关。 我不想创建比线程数更多的任务。 我怎么知道c#中的线程数? 我尝试查询ParallelOptions.MaxDegreeOfParallelism,我得到的只是-1。

并行任务基本上是可以共享的线程。 因为活动线程的数量受到可用逻辑处理器核心数量的限制,所以很好的猜测就是获取程序可用的逻辑核心数量。

Environment.ProcessorCount