各位好,我遇到一个问题,伪代码如下。并行执行funcList,funcList长度为4,CPU4核,其中耗时最久的的func,为4秒左右。
这段代码放在action中执行,有时发现总耗时20多秒(sw.ElapsedMilliseconds为两万多),远高于func的4秒,请问下这是什么原因?如何优化?
var sourceList = new ConcurrentBag<Source>();
var sw= Stopwatch.StartNew();
Parallel.ForEach(funcList, new ParallelOptions { MaxDegreeOfParallelism = 4 }, func =>
{
sourceList.Add(func());
});
sw.Stop();
学习了
cpu满了吧