我有简单的代码
for( int i = 0 ; i < arr.GetLength(0) ; i++)
{
for( int j = 0 ; j < arr.GetLength(1) ; j++)
{
arr[i, j ] = 0;
}
}
我需要让这段代码非常快 - 所以我想使用Tasks.Parallel.For
使用Parallel.For
的最快速,最有效的方法是什么?
可以是这样的
Parallel.for( int i = 0 ; i < arr.GetLength(0) ; i++)
{
Parallel.for( int j = 0 ; j < arr.GetLength(1) ; j++)
{
arr[i, j ] = 0;
}
}
或只使用一个Parallel.for
?
答案 0 :(得分:3)
最好只在外循环上使用Parallel.for(...)
。
这个想法是你可以并行执行内部循环迭代。
答案 1 :(得分:3)
将这种方法用于两个循环:
int length0 = arr.GetLength(0);
for( int i = 0 ; i < length0 ; i++)
它比每次调用方法都快。
和Parallel.for仅用于第一个循环