我很惊讶Parallel
不消耗所有线程。我写这段代码:
public static long Sum(this IList<long> list)
{
long result = 0;
Parallel.ForEach(Partitioner.Create(0, list.Count),
() => 0L,
(range, state, sum) => Sum(list, range),
x =>
{
Interlocked.Add(ref result, x);
});
return result;
}
然后我尝试使用这个:
long res = list.AsParallel().Sum();
但它也消耗单核。
问题:我怎样强制在多个线程中运行此代码,通过设置进程关联性或其他东西,我想,有一些技术可以做到。