基本上这里是问题所在,我有一个函数“ GetAllCandidates”,该函数接受列表,计算内容,更改参数并使用Task.Factory.StartNew调用自身,以计算具有原始数组不同变体的所有可能的输出。
private void GetAllCandidates(List<int> values)
{
Interlocked.Increment(ref _count);
for (var i = values.Count - 1; i >= 1; i --)
{
//Do work and calculations
Task.Factory.StartNew(
() => GetAllCandidatePowers(newPowers)
);
}
}
我需要充分利用CPU上的内核,并等待所有任务完成,这就是问题所在。
关于如何处理此类问题的任何提示?
使GetAllCandidates
本地功能列表中的任务开始。函数结束时,等待它们。只要您启动多个任务,这仍然会提供并行性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句