3

嗨,我想知道为什么 C# 代码中通常的图形速度比 VB6 慢得多,这里有一个示例代码,它在 VB6 和 C# 中执行相同的操作,在我的计算机上需要 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)
4

1 回答 1

4

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

于 2010-11-04T18:04:16.380 回答