Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: Synchronisierung asynchroner Kommunikation über Messages
5. Feb 2006, 09:23
Guten Morgen, oXmoX.
Durch das Einstellen einer WM_COPYDATA Nachricht in die message queue der Anwendung A durch die Anwendung B kommt doch schon eine Kommunikation zwischen den Anwendungen zu Stande - wozu dann noch eine Kommunikation über kernel objects?
Echtzeit-Verarbeitung lässt sich durch die Verknüpfung der Techniken wohl nicht erreichen, da es passieren kann, dass die Nachricht WM_COPYDATA noch unbearbeitet in der queue steht, nachdem das event object in den signalled state versetzt wurde.
Außerdem macht die REPEAT-Schleife beim Warten keinen Sinn. Entweder du wartest INFINITE ohne Schleife oder du wartest mit TIMEOUT und Schleife. Im main thread ist das aber aus meiner Sicht eher ungeschickt. Wenn du mit kernel objects zur Prozess-Synchronisierung arbeitest, dann solltest du auch threads benutzen, damit das Konzept richtig zum tragen kommt.
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.
Theoretische Grüße vom marabu
|