Delphi-PRAXiS
Seite 2 von 2     12   

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/)
-   -   Delphi Probleme mit PostMessage aus einem Thread (https://www.delphipraxis.net/128810-probleme-mit-postmessage-aus-einem-thread.html)

sirius 6. Feb 2009 17:47

Re: Probleme mit PostMessage aus einem Thread
 
Zitat:

Zitat von messie
Ich dachte immer, Application.Processmessages erzwingt die Abarbeitung der Windows-Eventqueue.

  1. Jeder Thread hat seine eigene MessageQueue
  2. Greifst du auf nicht threadeigene Variablen/Objekte zu
  3. ist es ja gerade der Sinn eines Threads. Die Messageabarbeitung im Hauptthread läuft ja nebenbei

deadcantdance 6. Feb 2009 20:27

Re: Probleme mit PostMessage aus einem Thread
 
Das Problem bei der Benutzung von Synchronize ist aber, dass der Thread erst dann weiterläuft, nachdem die Methode abgearbeitet wurde. Daher habe ich es ja bisher mit PostMessage probiert, damit der Thread sofort weiterlaufen kann.

Es handelt sich bei dem Thread um einen Kommunikations-Thread, der ständig Daten empfangen und senden soll, daher soll keine Zeit für das Updaten der GUI vom Thread verloren gehen.

sirius 6. Feb 2009 20:58

Re: Probleme mit PostMessage aus einem Thread
 
Also die GUI muss upgedatet werden, wenn den den Thread switched. Das verstehe ich nicht. Oder bist du auf einem Pentium 1 Prozessor?

deadcantdance 7. Feb 2009 13:11

Re: Probleme mit PostMessage aus einem Thread
 
Die GUI muss aus dem Hauptthread upgedatet werden. Daher habe ich bisher eine WM_User-Botschaft verschickt, da ich dachte, diese würde im Hauptthread abgearbeitet. Daher auch Applikation.ProcessMessages im Thread.

Nur wird die GUI halt aus dem anderen Thread geupdatet. Das ist mein Problem.

himitsu 7. Feb 2009 13:52

Re: Probleme mit PostMessage aus einem Thread
 
Application.ProcessMessages verarbeiter die Nachrichten und zwar in dem Thread, wo es aufgerufen wird.
wenn du also Application.ProcessMessages in einem Thread aufrufst, dann werden die Nachrichten auch in diesem Thread abgearbeitet und mit etwas Glück zankt sich dann die Nachrichtenverarbeitung des Programms mit der im Thread auch noch.

also Application.xyz hat nichts in einem Thread zu suchen.

Apollonius 7. Feb 2009 13:56

Re: Probleme mit PostMessage aus einem Thread
 
Windows lässt gar nicht zu, dass ein Thread für einen anderen Fensternachrichten abarbeitet. Jeder Thread erhält nur die Nachrichten für seine eigenen Fenster.

himitsu 7. Feb 2009 14:03

Re: Probleme mit PostMessage aus einem Thread
 
ok, dennoch nutzt er dann die Nachrichtenverarbeitung des Hauptthreads, auch wenn er damit die Nachrichten eines anderen Thread abarbeitet

deadcantdance 7. Feb 2009 17:14

Re: Probleme mit PostMessage aus einem Thread
 
Wie kann ich dann bitte ohne ein Einsatz von Synchronize den Hauptthread dazu bewegen, die GUI zu aktualisieren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz