C#WinForms:使用一个或多个其他线程绘图.怎么样?

Ale*_*rov 6 c# multithreading system.drawing winforms

如果我有一个包含各种几何形状(线条,矩形,圆形等)的大图,那么线程需要花费大量时间来绘制所有内容.但在现实生活中,一栋建筑由一个以上的工人建造.因此,如果绘图是建筑物而线程是构建器,那么绘制速度会快得多.但我想知道如何.

你能告诉我怎么样吗?它是否可能(虽然我已经问过,答案是"是")?是否值得使用?有什么风险?

如果有我错过的问题,请告诉我他们并回答他们.

谢谢!

bpo*_*ter 5

假设您正在使用GDI +和System.Drawing.Graphics对象将图形(矩形,圆形等)渲染到背景绘图表面(例如System.Drawing.BitmapObject):System.Drawing.Graphics您需要使用的对象的实例成员不是线程安全的.请在此处查看MSDN文档

鉴于此,我不会使用多个"构建器"线程来渲染您的图形.

相反,我的建议是System.Drawing.Bitmap单个后台线程中对所有绘图进行操作,而不是多个后台线程(如果可能).您可以使用状态栏或其他指示器让用户知道您的程序在后台运行.