3 Stimmen

Warum ist die Geschwindigkeit beim Zeichnen von Grafiken in C# langsamer als in VB6?

Hallo Ich frage mich, warum die übliche Grafikgeschwindigkeit in C# so viel langsamer ist als in VB6-Code , hier ist ein Beispielcode, der dasselbe in VB6 und C# tut, es dauert 1,7 Sekunden in VB6 auf meinem Computer und 4,2 Sekunden in C# Könnte mir bitte jemand sagen, warum und ob es einen besseren und schnelleren Weg in C# gibt.

Danke

C#-Code

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-Code:

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

4voto

Joel Lucsy Punkte 8402

VB6 geht direkt zu GDI. C#, das System.Drawing verwendet, verwendet GDI+. GDI+ ist antialiased und verwendet 32bpp. Im Grunde genommen gibt es eine Menge Overhead.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X