![]() |
BitBlt zu langsam bei threads?
Hallo alle zusammen :)
Hab hier nen kleines Problem vielleicht kann mir ja jemand weiter helfen. Folgede Situation: ich möchte einen Grafen in eine Paintbox zeichen um das flackern trotz DoubleBufferd zu verhindern erzeuge ich mir ein Tbitmap und führe darauf meine canvas Zeichenopertaionen aus. Anschließend kopiere ich es mittels BitBlt. z.B.: BackpufferProz ist das Tbitmap pbProz ist die Paintbox
Delphi-Quellcode:
BitBlt (pbProz.Canvas.Handle,
0, 0, BackpufferProz.Width, BackpufferProz.Height, BackpufferProz.canvas.handle, 0, 0, SRCCOPY) ; Diese Darstellung wird in einer idel prozedure des Haupthreads aktuallisiert (soll ja schnell gehen ;) ). Soweit so gut. Läuft auch alles prima, kein flackern und sehr schnell. Jetzt zu meinem eigentlichen Probelem ... in der Anwendung laufen mehrere Threads die wichtige Berechnungen durchführen. Nun konnte ich beobachten das anscheinend das BitBlt relativ langsam ist bzw wenn es angestozen wird dieser Thread durch ein höher priorisierten Thread scheinbar nicht unterbrochen werden kann. Und daher wichtige Berechnungen nur unzureichend stattfinden. Kann es an dem BitBlt liegen ? Wäre super wenn ihr mir da helfen könntet .. Mit freundlichen Grüssen, Andre |
Re: BitBlt zu langsam bei threads?
Wenn es dir zu langsam ist dann nimm doch die API GetDIBits256
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz