我想使用Parallel.invoke。如果我分配20个并行任务,则只有8个并发运行。我的CPU是http://ark.intel.com/products/47925,并且报告的线程数是8.我假设可以并行运行的任务数与线程的cpu数有关。我不想创建比线程数更多的任务。我怎么知道c#中的线程数?我尝试查询ParallelOptions.MaxDegreeOfParallelism,我得到的只是-1。
答案 0 :(得分:5)
并行任务基本上是可以共享的线程。因为活动线程的数量受到可用逻辑处理器核心数量的限制,所以很好的猜测就是获取程序可用的逻辑核心数量。
Environment.ProcessorCount