Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TimeSetEvent / Canvas / Thread? (https://www.delphipraxis.net/158000-timesetevent-canvas-thread.html)

himitsu 2. Nov 2011 15:22

AW: TimeSetEvent / Canvas / Thread?
 
Wieso willst unbedingt einen Thread ?


Delphi-Quellcode:
loopBeginTickCount := GetTickCount;
// FBitmap mit neuem Frame bestücken, was auch immer das ist
Synchronize(DrawFrame);
Sleep(Max(MS_PER_FRAME - (GetTickCount-loopBeginTickCount), 1));
Macht absolut nix innerhalb des Threads, sondern alle "Arbeit" wird in der VCL erledigt ... wozu also keinen Timer, statt des Sleeps und gleich in der VCL bleiben?

Medium 2. Nov 2011 15:48

AW: TimeSetEvent / Canvas / Thread?
 
Nochmal: Weil der Scheduler deutlich zuverlässiger ist was das Einhalten der "Schlafzeit" angeht, da man sich u.a. nicht noch die Messagequeue ans Bein bindet. Die scheint ja, wie der TE schrieb, durchaus etwas anfälliger für Einflüsse, die man nicht in der Hand hat. Das war ja das Problem des TE.
Zudem könnte die Kommentarzeile in der Realität durchaus einige dicke Operationen beinhalten, ich weiss ja nicht wie der TE seine Bilder erzeugt, bzw. woher er sie liest.

Bummi 2. Nov 2011 18:14

AW: TimeSetEvent / Canvas / Thread?
 
@Mavarik

ich muss mich erst mal entschuldigen, ich hatte vor 2 Jahren eine Fehler beim verwenden von Bitmaps in Threads, der sich nur Threadreduzierung und Canvas-Lock beheben ließ, ich kann diesen Fehler nicht mehr reproduzieren.
Er trat mit D2007 bei einer Entwicklung in einer VM auf, jeder Thread hatte seine eigenen Bitmaps die er bearbeitet hat, diese waren bei mehr als 5 Thread nachweislich zum großen Teil unbrauchbar ich habe es seinerzeit auf VCL-Probleme geschoben .....

Mavarik 3. Nov 2011 10:08

AW: TimeSetEvent / Canvas / Thread?
 
Zitat:

Zitat von Bummi (Beitrag 1134116)
ich habe es seinerzeit auf VCL-Probleme geschoben .....

Und was war es?

Bummi 3. Nov 2011 13:31

AW: TimeSetEvent / Canvas / Thread?
 
Ich weiß es leider nicht, ich habe den Code gestern nochmals hervorgekramt neu Kompiliert und bekomme die Fehler nicht mehr, es war eine Verzeichnisvorschau für Bildordner wie Explorer/Kacheln nur etwas "apfeliger" mit 8 GDI+ verwendenden Threads ...

Mavarik 3. Nov 2011 15:49

AW: TimeSetEvent / Canvas / Thread?
 
Schade...

Das sind immer die Sachen - da sucht man ewig dran und plötzlich ist es weg...

Ätzend!

Grüsse Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.
Seite 3 von 3     123   

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