Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: 2 Threads mit Events synchonisiern

  Alt 6. Sep 2005, 14:26
Critical Sections wären das falsche Werkzeug.
Du benötigst Events.

1.) du erstellt ein Objekt der Klasse TEvent auf dem Hauptformular (oder sonstwie global)
Diese Objekt "lebt" also länger als die beiden Threads
   FEvent := TEvent.Create(nil, True, False, 'MeinEvent5641'); 2.) Dein 1. Thread setzt das Event, wenn Daten vorhanden
   ...Event.SetEvent; 3.) Dein visualisierung Thread wartet auf das Event:
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;
Andreas
  Mit Zitat antworten Zitat