C#中的并行数组处理

Mat*_*nai 4 c# arrays

我有一个介于0到255之间的921600数字的数组.

我需要检查每个数字是否高于阈值.

是否可以同时检查阵列的前半部分和后半部分,以减少运行时间?

我的意思是,是否可以并行运行以下两个for循环?

for(int i = 0; i < 921600 / 2; i++)
{
    if(arr[i] > 240) counter++;
}

for(int j = 921600 / 2; j < 921600; j++)
{
    if(arr[j] > 240) counter++;
}
Run Code Online (Sandbox Code Playgroud)

先感谢您!

Dmi*_*nko 9

我建议使用Parallel Linq(PLinq)

int[] source = ...

int count = source
  .AsParallel()  // comment this out if you want sequential version
  .Count(item => item > 240);
Run Code Online (Sandbox Code Playgroud)