AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?
Thema durchsuchen
Ansicht
Themen-Optionen

PostMessage mit WndProc oder WMCopyData/Record aus Thread für GUI-Aktualisierung?

Ein Thema von Glados · begonnen am 3. Nov 2017 · letzter Beitrag vom 7. Nov 2017
 
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

AW: PostMessage mit WndProc oder WMCopyData/Record aus Thread heraus?

  Alt 3. Nov 2017, 15:28
Zitat:
Die MessageQueue läuft auch im Hauptthread. Bei Verwendung von MSDN-Library durchsuchenPostMessage, würde ich das Verhalten allerdings eher mit TThread.Queue vergleichen (hierbei läuft der aufrufende Thread auch weiter; anders als beim TThread.Synchronize ).
ist es demnach korrekt-er WndProc (oder was anderes) zu verwenden statt Synchronize;

Mein Ziel ist es, alle Synchronize und Queue aus den Threads zu bekommen.

Daher habe ich mir das da oben mal zusammengestrickt. Record > PostMessage > WndProc. Frage ist nur, ob das in Ordnung ist?
Bei vielen deiner Fragen denke ich an klassisches "Overengineering"

WndProc und MSDN-Library durchsuchenPostMessage ist der native WinAPI Weg für solche Dinge. Delphi ist nunmal eine höhere Programmiersprache, welche einige Abstraktionen bereitstellt. Ich kann dir hier nur meine persönliche Meinung sagen, aber ich würde in 99% aller Fälle bei TThread.Synchronize bzw. TThread.Queue bleiben. Probier es mal mit Letzterem und beachte zusätzlich, dass du wirklich nur die erforderlichen Codestellen synchronisierst. Auch hilfreich kann sein, die GUI Aktualisierung nicht nach jedem Rechenschritt auszuführen. Wenn du z.b. eh nur eine ProgressBar updatest, kannst du das ja ggfls. auch ohne Probleme nur alle 1000 Iterationen oder so durchführen, ohne dass man als Mensch davon etwas mitbekommt.

In Ordnung ist deine Methode vermutlich auch, bloß machst du es dir dadurch unnötig schwer und reduzierst zudem wahrscheinlich auch die Lesbarkeit deines Codes.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05: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