为什么C#中绘制图形的速度比VB6慢

时间:2010-11-04 17:39:19

标签: c# vb6 performance graphic

您好 我想知道为什么通常的图形速度比C#代码中的VB6慢得多, 这是一个示例代码,它在VB6和C#中执行相同的操作,在我的计算机上的VB6中需要1.7秒,在C#中需要4.2秒 有人可以告诉我为什么以及c#中是否有更好更快的方法。

由于

C#代码

Bitmap MyBitmap = new Bitmap(1024, 768);
Graphics g = Graphics.FromImage(MyBitmap);
DateTime STime = DateTime.Now;
Pen MyPen = new Pen(Color.Black);
for (int i = 0; i < 100000; i++)
{
    g.DrawLine (MyPen, 0, 0, 1024, 768);
}
MessageBox.Show(DateTime.Now.Subtract(STime).TotalMilliseconds.ToString());

VB6代码:

Me.AutoRedraw = True
t = Timer
For i = 1 To 100000
    Me.Line (0, 0)-(1024, 768), 0
Next
MsgBox (Timer - t)

1 个答案:

答案 0 :(得分:4)

VB6直接进入GDI。使用System.Drawing的C#使用GDI +。 GDI +是抗锯齿的,使用32bpp。基本上,有一大堆开销。