我有一个耗时的循环,我想并行执行。 伪代码:
for(int n = 0; n < 2048; n++)
{
output_data[n] = function(constant_input_data, n)
}
如何将此循环划分为C等份,其中C是CPU核心数?
在C#,。net?
中执行此操作的最佳和最优雅的方法是什么?答案 0 :(得分:7)
使用TPL的Parallel.For
Parallel.For( 0, 2048, n=>
{
output_data[n] = function(constant_input_data, n);
});
TPL尝试生成与no一样多的线程。你拥有的cpu核心,然后你的工作分为在这些线程上安排的任务。因此,可能 x不是2048个任务。 x是否的线程数。核心。