![]() |
AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Zitat:
Delphi-Quellcode:
). Falls du das komplette Projekt hochladen kannst/willst, würde ich sogar mal drüberschauen. Gerne auch per PN.
Tthread.Queue
|
AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Liste der Anhänge anzeigen (Anzahl: 2)
Habe das jetzt nochmal getestet mit einem Thread, der exakt 1 Sekunde lang einen Wert in einer Schleife inkrementiert.
Bild 1 zeigt den endgültigen Wert der Variable nach Beendigung des Thread. Bild 2 führt nebenher den gleichen Task auch nochmal im Main Thread aus. Wie man sieht es lediglich
Delphi-Quellcode:
von der Performance her minimal schlechter.
TThread.Synchronize
Delphi-Quellcode:
ist genauso schnell wie
TThread.Queue
![]() ![]() Synchronisiert wird jeweils wenn
Delphi-Quellcode:
, also jeweils nach 100.000 Iterationen.
Value mod 100000 = 0
|
AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Muss ich Queue aus dem Thread heraus aufrufen oder kann ich im Thread eine Prozedur in einer anderen Unit aufrufen und von dort aus Queue?
Wenn letzteres möglich ist, könnte ich Queue und PostMessage direkt gegenüberstellen und mit nur einer einzigen geänderten Zeile testen. |
AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Zitat:
Delphi-Quellcode:
. Der Aufruf von
TThread.Queue(TThread.Current, ...)
Delphi-Quellcode:
könnte deinen Test allerdings verfälschen.
TThread.Current
|
AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Ich bastel erstmal das Grundgerüst zusammen und gucke was sich dann anbietet.
|
AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Liste der Anhänge anzeigen (Anzahl: 1)
Habe mein Testprojekt mal aufgeräumt und angehangen. Ist sicherlich keine ganz perfekte Messung, aber egal was ich probiere:
Delphi-Quellcode:
ist gleich schnell wie
TThread.Queue
Delphi-Quellcode:
und
PostMessage
Delphi-Quellcode:
gleich schnell wie
TThread.Synchronize
Delphi-Quellcode:
.
SendMessage
|
AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Dann bleibe ich der Einfachheit halber bei PostMessage. Das ist alles schon implementiert und kann nur besser gemacht werden.
Alles zu Queue umzuändern würde wieder alles über den Haufen werfen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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