2010-11-04 3 views
3

Привет Я удивляюсь, почему обычная скорость графики настолько медленнее, чем VB6 в коде C#, вот пример кода, который делает то же самое в VB6 и C#, это занимает 1,7 сек в VB6 на моем компьютере и 4.2 сек в C# Может кто-нибудь, пожалуйста, скажите мне, почему, а также если есть лучший и быстрый способ в C#.Почему скорость рисования графики медленнее в C#, чем VB6

Благодаря

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) 
+1

Вы должны использовать секундомер в C# для выбора времени в отличие от DateTime - здесь это может быть не очень важно, но это рекомендуемый способ измерения. – dotalchemy

+1

DateTime не подходит для синхронизации. Вместо этого используйте секундомер. –

+0

спасибо, я использовал StopWatch, но он не сильно отличается, если нужно, я отправлю этот код, время было 4.19 – DrSobhani

ответ

4

VB6 идет прямо к GDI. C#, использующий System.Drawing, использует GDI +. GDI + сглажен и использует 32bpp. В принципе, есть накладные расходы.

Смежные вопросы