在Parallel.For中解析数组的快速或正确方法是什么

时间:2015-11-06 13:24:14

标签: c# arrays multithreading parallel.for

我有一个大的单维数组,包括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位图)。

0 个答案:

没有答案