首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

为什么执行这一句FillRegion(Brush brush,Region region)要花很长时间,超过600ms,该如何处理

2012-09-10 
为什么执行这一句FillRegion(Brush brush,Region region)要花很长时间,超过600msC# codeTextureBrush bgim

为什么执行这一句FillRegion(Brush brush,Region region)要花很长时间,超过600ms

C# code
            TextureBrush bgimgBruch = new TextureBrush(m_bgImage);            GraphicsPath bgimgPath = new GraphicsPath();            Region eRegion = null;//.....  eRegion 在这里创建, 并执行了多次Uinon(超过600次)操作。            System.Diagnostics.Stopwatch timer2 = new System.Diagnostics.Stopwatch();//new一个stopwatch            timer2.Start();            g.FillRegion(bgimgBruch, eRegion);            timer2.Stop();            FileLog.WriteInfo("Draw(Graphics g) ", "Region Spend time: " + timer.ElapsedMilliseconds.ToString() + " FillRegion Spend time: " + timer2.ElapsedMilliseconds.ToString());



 g.FillRegion(bgimgBruch, eRegion); 这句话的执行时间跟前面eRegion 执行Union的次数成一个比例关系。eRegion是很多不规则图像的组合。 但这个语句执行速度也太慢了, 超过600ms, 再多一点估计更慢。 


 有什么办法提高这个画图的速度吗?

[解决办法]
图形太复杂
[解决办法]
有,把复杂图形转换为字体然后绘制,速度立马上升
[解决办法]
FillRegion本身效率不高,别奢求了

热点排行