Zitat von
Geri:
Ach ja, kann der receiver auch daten direkt zurückschicken und der Sender auf diese Nachricht warten, gleich nachem er gesendet hat?
Send-Message ist bereits synchron und liefert einen Integer als Wert zurück. Diesen Integer-Wert kannst du vom Recevier aus verändern, indem du der Message ein Ergebnis zuweist (TMessage/TMsg haben dafür eigene Member, wenn ich mich recht erinnere). Benötigst du mehr Daten als 4 Byte, kannst du beispielsweise Mutexe oder Semaphores benutzen, die der Receiver erzeugt und auf die der Sender nach der Rückkehr von SendMessage() wartet.
Eine andere Möglichkeit wäre, die Nachrichtenschleife zu überschreiben und alle Nachrichten in eine lokale Queue zu stopfen, bis du die eine gewünschte Nachricht erhältst. Ist diese Nachricht bearbeitet, wird zunächst die lokale Queue mit den alten Nachrichten abgearbeitet und anschließend die globale weiterbearbeitet. Das könnte aber je nach Message auch Nebenwirkungen mit sich ziehen und ist mit Sicherheit komplexer als ein
Mutex.
Eine Möglichkeit, gezielt eine Message aus der globalen Message-Queue zu fischen bzw auf deren Ankunft zu warten ist mir nicht bekannt.