-2

我想将 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));
    }
}
4

1 回答 1

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并发调用是安全的,我不太确定。

于 2017-09-29T12:03:00.840 回答