我有一个大的单维数组,包括Zmap数据(高度数据) 该阵列非常庞大,它由100个面积像素的测量样本组成。我需要以多种方式处理它,以便可以纠正另一个锁定的位图。为了加速处理这个大型数组,我使用了parallel.for
EA:
public void MarkErrorSamples(int[]Depthdata,int lowbound)
{
Parallel.For (0, depthData.Length, sampleN =>
{
if(depthData[sampleN] < lowbount)
{
// update redchannel Red value by 20
int x= xfromLockedmemPos(sampleN); // x value based upon sampleN
int y =yfromLockedmemPos(sampleN);
setpixel(x,y,AddRed((getpixelRed(x,y),20);
}
});
}
上面的代码有效,但我现在对访问depthdata[sampleN]
的方式有些怀疑。我担心的是,我认为线程可能会在每次启动线程时锁定数组以从中检索数据。所以我想知道是否正确使用“外部块”&#39; Parallel.for
请注意,在上面的void中,不需要更改depthdata本身,只对位图执行操作(使用lockbits位图)。