标签: c# multithreading image-processing bitmap parallel.foreach
我有对象列表的字典,对于每个列表,我需要使用关联的键加载位图,并且对于列表中的每个对象,计算变换,使用变换克隆位图,并保存结果。每个列表中的对象数量有时会从60,000变为1,并且连续执行该操作很可能需要永久。所以,我尝试并行化每个列表中的每个循环,但不幸的是,Bitmap类持有一个全局锁,因此,为了避免异常,我必须锁定克隆并保存代码,这真的打败了这一点首先使用并行循环,因为克隆和保存是该过程中最耗时的部分。有没有办法可以在多个线程中获得位图的子图像?
答案 0 :(得分:0)
事实证明,至少对我来说,真正的答案是放弃GDI +,并使用Magick.NET,这是更好的设计。现在它完美运行,具有多线程和预期的加速。