Einzelnen Beitrag anzeigen

a.def
(Gast)

n/a Beiträge
 
#5

AW: Threads: Variablen zwischen zwei Threads austauschen / Messages

  Alt 25. Jan 2017, 17:36
Ich teste gerade ein bisschen mit PostThreadMessage und PeekMessage herum.
Das Ergebnis von PostThreadMessage ist komischerweise immer false, obwohl der Thread existiert den ich anpeile.

Mein Aufruf sieht so aus:
Delphi-Quellcode:
type
 TThreadMessages = packed record
 const
  THREAD_UPDATE_UI = 1;
  // ....
  // ...
 end;

var
 aThreadMessages: TThreadMessages;

// Arbeiterthread ruft auf ...
PostThreadMessage(GUIThread.ThreadID, aThreadMessages.THREAD_UPDATE_UI, 0, 0); // immer false

// GUI-Thread fragt ab ...
var
 MessageData: TMsg;

if (PeekMessage(MessageData, 0, 0, 0, PM_REMOVE)) then
 if MessageData.message = aThreadMessages.THREAD_UPDATE_UI then
  // ...
Die Fehlermeldung lautet "ungültiger Threadbezeichner"

Edith
ein Aufruf von PeekMessage(MessageData, 0, 0, 0, PM_NOREMOVE); ganz am Anfang im Thread hat für Abhilfe gesorgt.
Nur ist das jetzt alles OK so?

Geändert von a.def (25. Jan 2017 um 17:48 Uhr)
  Mit Zitat antworten Zitat