Hallo marabu!
Zitat von
marabu:
Ich würde die Nachricht WM_COPYDATA im main thread verarbeiten. Wenn die Verarbeitung der übermittelten Daten eine Nebenläufigkeit bedingt, dann würde ich einen speziellen thread für diese Aufgabe einrichten, der dann aber auch über seine Methoden gesteuert werden kann.
Mein Ziel ist es ja eigentlich, die
API von Programm B, die nur über WM_COPYDATA-Messages ansprechbar ist, in einer Klasse von Programm A zu kapseln, die völlig synchron - also über normale Methodenafrufe - arbeitet. Das bedeutet, dass der Main-Thread tatsächlich so lange warten muss, bis eine Antwort-Message von Programm B für den jeweiligen Funktionsaufruf eingetroffen ist (sonst wäre es ja nicht synchron). Daraus ergibt sich aber, dass das Empfangen der Messages nicht im Main-Thread stattfinden darf, denn dieser schläft ja, während er auf die Antwort wartet - kann also damit auch keine Messages mehr verarbeiten. Also muss ich wohl einen eigenen Thread einrichten, der nur für das Empfangen von Messages zuständig ist und den Main-Thread (z.B. über ein Event) bei Eintreffen einer Message ggfs. aufweckt. Die Alternative des Busy Waitings (so wie in meinem ursprünglichen Posting) will ich nach Möglichkeit vermeiden.
Ich arbeite zum ersten Mal mit Messages und auch mit Nebenläufigkeiten. Also sagt mir bitte bescheid, wenn ich da was falsch sehe. Kann man das so Umsetzen? Ist es möglich, einen Thread zu bauen, der völlig unabhängig vom Main-Thread Messages empfangen kann? Bin für jede Hilfe dankbar!
Gruß,
oXmoX