Einzelnen Beitrag anzeigen

oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#3

Re: Synchronisierung asynchroner Kommunikation über Messages

  Alt 4. Feb 2006, 22:31
Danke für deine Ratschläge, aber es will immernoch nicht funktionieren.
Meine Funktion sieht jetzt vorläufig in etwa so aus:
Delphi-Quellcode:
function MyClass.GetPartnerHandle(Call: Integer): String;
begin
  Self.SendMsg('GET CALL ' + IntToStr(Call) + ' PARTNER_HANDLE');
  repeat
    Self.FMsgEvent.WaitFor(INFINITE);
  until (Pos('CALL ' + IntToStr(Call) + ' PARTNER_HANDLE', Self.FLastMsg) > 0);
  Result := Copy(Self.FLastMsg, Pos('PARTNER_HANDLE', Self.FLastMsg) + 15, 255);
end;
FMsgEvent ist ein TEvent, dass immer ausgelöst wird (mit SetEvent), wenn eine neue Message der anderen Anwendung reinkommt. Es handelt sich übrigens um WM_COPYDATA-Nachrichten und die Prozedur, die diese entgegennimmt und daraufhin das Event auslöst, befindet sich in derselben Klasse (MyClass). Könnte es sein, dass der WaitFor-Aufruf die ganze Klasseninstanz lahmlegt, sodass auch keine Messages mehr entgegengenommen werden können?
  Mit Zitat antworten Zitat