2010-12-15 11 views
2

Ich versuche sehr schnell 720x480 Bitmaps in eine Picturebox zu laden und während ich die Bilder in die Picturebox lege, verlangsamt sich die Benutzeroberfläche meiner Anwendung erheblich. Gibt es einen Weg um es herum? Ich lese, dass wenn ich einen Hintergrundarbeiter verwende, kann ich das Bild nicht in das Bildbox-Steuerelement im DoWork-Ereignis laden.C# Bild in PictureBox laden, ohne die UI zu verlangsamen

Was sind meine Optionen?

Danke

+0

Ich würde empfehlen, den Profiler zu verwenden, um speziell zu sehen, wo die teuersten Anrufe von Anfang an kommen, damit Sie wissen, mit welchem ​​Problem Sie konfrontiert sind. – BeemerGuy

+0

Danke. Ich empfange das Bild in Form eines Byte-Arrays, rekonstruiere daraus ein Bitmap und zeige es dann in der Bildbox an, indem ich ihm die Bildeigenschaft der Bildbox zuweise. Wenn ich den Teil auszeichne, der die Bitmap tatsächlich der PictureBox zuweist, ist die Benutzeroberfläche überhaupt nicht träge. – GS123

+0

Ähnliches Problem. Sind alle (wenige und kleine) Bilder vorinstalliert, wird durch Klicken auf die PictureBox durch die Bilder geblättert. Wenn ich mäßig schnell klicke, vermisst die PictureBox einige meiner Klicks. – stevenrcfox

Antwort

2

Es hängt davon ab, wo Sie Bild bekommen. Wenn es vom Netzlaufwerk oder vom Netz oder von der Datenbank kommt, dann hilft Ihnen BackgroundWorker definitiv. Holen Sie das Bild in DoWork Handler und weisen Sie das Bild PictureBox in der RunWorkerCompleted Handler.

+0

Danke. Ich empfange das Bild in Form eines Byte-Arrays, rekonstruiere daraus ein Bitmap und zeige es dann in der Bildbox an, indem ich ihm die Bildeigenschaft der Bildbox zuweise. – GS123

+0

dann versuchen Sie 'BackgroundWorker' und konstruieren Sie Bild in' DoWork' Handler und übergeben Sie dieses konstruierte Bild an 'RunWorkerComplatedHandler'. – TheVillageIdiot

Verwandte Themen