Einzelnen Beitrag anzeigen

Osse

Registriert seit: 25. Mär 2005
Ort: Hamburg
74 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: 2 Threads mit Events synchonisiern

  Alt 6. Sep 2005, 16:25
Danke shima,

das ist schon mal sehr gut, doch leider hängt das ganze bei mir, denn:

Mein Hauptformular ist mein Hauptthread (Thread 1)in dem die Anzeige gemacht wird. Das Heißt ich müsste doch eine Funktion schreiben, die dann ausgeführt wird, so wie bei einem Interrupt (komme aus der uC Welt). Also eine Procedure für das Event, so wie Button on Klick. Nur wie lautet der Funktionsaufruf, hab in den Methoden nix gefunden .

Der 2. Thread guckt die ganze Zeit nach den Eingangsdaten.

Die Lösung ist also nicht verwendbar.

Delphi-Quellcode:
procedure TVisThread.Execute
var
   wr : TWaitResult;
begin
   while not Terminated do
   begin
     // immer nur max. 2 sek warten, damit der Thread nicht ewig hängt
     wr := ...Event.Waitfor(2000);
     if wr = wrSignaled then
     begin
        ...Event.ResetEvent;
        // hier Daten entgegennehmen und anzeigen
     end;
   end;
end;
Muss ich zwingend einen weiteren Thread haben um diesen Code auszuführen, oder gibt es die oben von mir angedachte Lösung??

Hab da noch ne Frage zu den Events:

Zitat:
constructor Create(EventAttributes: PSecurityAttributes; ManualReset, InitialState: Boolean; const Name: string);

HAb mal nachgelesen, das mit dem PSecurityAttributes ein vorhandenes Eventgeöffnet werden kann (Delphi 5 hilfe). Das ist ja genau das was ich brauche, oder??
Noch eine letzte Frage zu dem Namen: Damit ist das Event eindeutig identifizierbar, oder??

Wieso schreibst du immer ...Event das muss doch immer gleich heißen oder? Wenn du es mit FEvent angelegt hast, dann muss es auch FEvent bleiben, oder und kann nicht ich-mach-was-ich-will-Event werden??
  Mit Zitat antworten Zitat