3

こんにちは私はなぜ通常のグラフィック速度が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)
4

1 に答える 1

4

VB6はGDIに直接行きます。System.Drawingを使用するC#は、GDI+を使用します。GDI +はアンチエイリアス処理され、32bppを使用します。基本的に、多くのオーバーヘッドがあります。

于 2010-11-04T18:04:16.380 に答える