在C#中将两层嵌套for循环转换为嵌套Parallel.for循环

时间:2017-09-29 11:59:27

标签: c# parallel.for

我想将C#中的以下代码转换为并行代码。我搜索了互联网,但我找不到合适的方法。感谢您的帮助。

Bitmap bmp = new Bitmap(1792, 2048);
for (int i = 0; i < 1792; i++)
{
    for (int j = 0; j < 2048; j++)
    {
        bmp.SetPixel(i,j,Color.FromArgb(100, 128, 128));
    }
}

1 个答案:

答案 0 :(得分:0)

你应该只替换外循环:

Bitmap bmp = new Bitmap(1792, 2048);
Parallel.For(0, 1792, i =>
{
    for (int j = 0; j < 2048; j++)
    {
        bmp.SetPixel(i,j,Color.FromArgb(100, 128, 128));
    }
});

这假设同时调用SetPixel是安全的,我不太确定。