【发布时间】:2017-09-29 20:03:00
【问题描述】:
我想将 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));
}
}
【问题讨论】:
-
你应该避免在
Bitmap中使用多线程,因为它不是线程安全的。 -
这里是 Microsoft 文档:msdn.microsoft.com/en-us/library/ff963552.aspx(通过在 google 中输入
c# replace a for loop by parallel for找到) -
你不能。位图是一个编组的 GDI+ 对象......
-
我认为这只是代表代码 - 否则您可以只使用
Graphics.FromImage(Bmp)和一次调用Graphics.FillRectangle() -
您应该使用 lockbits 并直接编辑字节。
标签: c# parallel.for