C# 转换代码以利用多核
我有以下问题。转换以下代码以利用您的多核计算机:C# 转换代码以利用多核,c#,C#,我有以下问题。转换以下代码以利用您的多核计算机: IEnumerable<double> numbers = GetNumbers(); var queue = new Queue<double>(); foreach (var number in numbers) { var computed = Compute(number); queue.Enqueue(computed); } 按照《辩证法》的建议,使用Parallel.ForEach,可以得到类似的结果
IEnumerable<double> numbers = GetNumbers();
var queue = new Queue<double>();
foreach (var number in numbers)
{
var computed = Compute(number);
queue.Enqueue(computed);
}
按照《辩证法》的建议,使用Parallel.ForEach,可以得到类似的结果
public void PrrocessItems()
{
IEnumerable<double> numbers = GetNumbers();
var queue = new Queue<double>();
Parallel.ForEach(numbers, item => ProcessItem(item, queue));
}
private void ProcessItem(double number, Queue<double> queue)
{
var computed = Compute(number);
queue.Enqueue(computed);
}
将集合分解为块,并基于可用的系统资源并行处理循环的多个迭代。您不需要自己管理任何线程工作。用Parallel.foreach替换foreach。