Hallo,
ich habe mal wieder eine Frage bezüglich Threads:
ich nutze zurzeit 2 Threads
--> Main Thread der u.a. die
GUI bedient
--> Nebenläufiger Thread (der bestimmte Kommunikationsanforderungen bearbeitet)
Meine Frage ist nun, kann ich mit einem Event vom Typ TEvent, welches ich im Thread als public anlege in
meinem Hauptthread darauf warten? Ist dieses threadsafe? Oder müsste ich das irgendwie noch absichern?
habe es zurzeit folgendermaßen:
Warten im Hauptthread
Delphi-Quellcode:
ergebnis:=aCyclicDataThread.fStoppEvent.WaitFor(2000);
case ergebnis of
wrSignaled: ;
wrTimeout: ShowMessage('TimeOut') ;
wrAbandoned: ;
wrError: ;
end;
aCyclicDataThread.fStoppEvent.ResetEvent;
Im 2. Thread wird das Event gesetzt:
Delphi-Quellcode:
try
while fShouldStopp do
begin
fIsStopped:=true;
fStoppEvent.SetEvent;
fWoBinIch:=6;
Sleep(100);
if Self.Terminated then exit;
// if Application.terminated then exit;
end;
finally
fIsStopped:=true;
end;
Danke euch!!