2010-11-04 19 views
3

Salut Je me demande pourquoi la vitesse graphique habituelle est tellement plus lente que VB6 en code C#, voici un exemple de code qui fait la même chose en VB6 et C#, il prend 1.7 Secs en VB6 sur mon ordinateur et 4.2 Secs en C# Quelqu'un pourrait me dire pourquoi et s'il y a un moyen meilleur et plus rapide de C#.Pourquoi la vitesse de dessin graphique est plus lente en C# que VB6

Merci

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()); 

Code VB6:

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

Vous devriez utiliser le chronomètre en C# pour le chronométrage, par opposition à DateTime - cela ne changera peut-être pas grand-chose ici, mais c'est la façon de mesurer conseillée. – dotalchemy

+1

DateTime n'est pas vraiment adapté au timing. Utilisez le chronomètre à la place. –

+0

merci, j'ai utilisé StopWatch mais il ne diffère pas beaucoup, Si nécessaire, je vais poster ce code, le temps était de 4,19 – DrSobhani

Répondre

4

VB6 va droit au GDI. C#, qui utilise System.Drawing, utilise GDI +. GDI + est anti-aliasé et utilise 32bpp. Fondamentalement, il y a un tas de frais généraux.