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??