关于在asp.net中C#画多条直线执行效率问题?

C#语言,在pictureBox控件中画直线时,数量少画得很快,当数量为100条时执行时间明显长了很多,卡一下才显示所画的100条直线。请大家帮看一下要怎么优化才执行快些... C#语言,在pictureBox控件中画直线时,数量少画得很快,当数量为100条时执行时间明显长了很多,卡一下才显示所画的100条直线。请大家帮看一下要怎么优化才执行快些?代码如下:
Point[] pt;
Point p1, p2;
List<Point[]> pts = new List<Point[]>();
public void InitData()
{
int x1, y1, x2, y2;
for (int r = 0; r <101; r++)
{
x1 = 0;
y1 = r * 32;
x2 = 101* 32;
y2 = r * 32;
p1 = new Point(x1,y1);
p2 = new Point(x2,y2);
pt = new Point[2];
pt[0] = p1;
pt[1] = p2;
pts.Add(pt);

}
}
//调用画图方法
public void myDraw()
{
Bitmap bmp = new Bitmap(100*32, 100*32);
Graphics g = Graphics.FromImage(bmp);
Pen pen = new Pen(Color.White, 1);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;
foreach (Point[] po in pts)
{
g.DrawLine(pen, po[0], po[1]);
}
pictureBox1.Image = bmp;
pen.Dispose();
g.Dispose();
}
展开
 我来答
阳光的雷咩咩
2014-06-12 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7733万
展开全部
没看太明白你到底要画什么,不过你那好像不是画一些简单图形,而是把整个图片按像素全部重绘了一遍,这自然是有点卡了。要么就说一下你到底要实现什么样的功能,要么就建议使用多线程试试。还有,在winform里面写代码测试还方便些。
更多追问追答
追问
你好,我这个是在winform窗体中写的代码,请看明白Graphics g = Graphics.FromImage(bmp)之意,并不是画整张图,而是利用bitmap来创建缓存画布,在bitmap画好要画的图形,经过pictureBox1控件显示出来。要画100根线循环100次就很慢,不懂改用什么方法才快?
追答
把你所有的代码贴出来,或者打包发百度网盘,我来给你测试一下。
百度网友a1d4f2f
2014-06-12 · 超过102用户采纳过TA的回答
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:192万
展开全部
在我这里执行效率还不错。1秒不到就出来了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式