Einzelnen Beitrag anzeigen

Shadow
(Gast)

n/a Beiträge
 
#1

BitBlt zu langsam bei threads?

  Alt 4. Apr 2007, 11:06
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
  Mit Zitat antworten Zitat