0

我有一个包含 Zmap 数据(ea 高度数据)的大型单维数组,该数组非常大,它由一个区域像素的 100 个测量样本组成。我需要以几种方式处理它,以便可以更正另一个锁定的位图。为了加快处理这个大数组,我使用了 parallel.for

即:

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]上面的代码有效,但我对访问我现在的方式有些怀疑。我在这里担心的是,我认为线程可能会在每次启动线程以从中检索数据时锁定数组。所以我想知道在 Parallel.for 中使用“外部块”数组数据的正确方法是什么

请注意,在上面的 void 中,不需要更改 depthdata 本身,只需对位图执行操作(使用 lockbits 位图)。

4

0 回答 0