Thema: Delphi Threads synchronisieren

Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Threads synchronisieren

  Alt 19. Mär 2007, 13:06
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!!
  Mit Zitat antworten Zitat