您好 我想知道为什么通常的图形速度比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)
答案 0 :(得分:4)
VB6直接进入GDI。使用System.Drawing的C#使用GDI +。 GDI +是抗锯齿的,使用32bpp。基本上,有一大堆开销。