AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

2 Threads mit Events synchonisiern

Ein Thema von Osse · begonnen am 6. Sep 2005 · letzter Beitrag vom 7. Sep 2005
 
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#12

Re: 2 Threads mit Events synchonisiern

  Alt 7. Sep 2005, 06:33
Auch auf die Gefahr hin, das ich an euch allen vorbei-rede, weil ich nicht richtig "zugelesen" (aka zugehört ) habe versuch ichs noch mal. Mein Lösungsvorschlag ist der folgende:

Delphi-Quellcode:
TDataThread = class(TThread)
... bla blubber
end;

TVisualThread = class(TThread)
... didel dadel
end;

var
  DataAvailable : Boolean;
  Data : IchKennDenTypNicht;
  thrData : TDataThread;
  thrViusal : TVisualThread;

procedure TDataThread.Execute();
var
  TempData : VonObigemTyp;
begin
  while not suspended ot terminated do
  begin
    TempData:=WoGibtsDennHierDieDaten();
    //Hier drum kümmern das "Data" solange nicht überschrieben wird, solange der andere Thread die nicht gelese n hat
    //danach:
      DataAvailable:=true;
    sleep(2); //Oder natürlich WaitForSingleObject oder ähnlich; aber mindestens eine 1ms schlafen, sonst (b)rennt die CPU
  end;
end;

procedure TVisualThread.Execute();
begin
  while not Suspended or Terminated do
  begin
    if (DataAvailable) then
    begin
       Synchronize(MachWasMitDenDaten);
       DataAvailable:=false;
    end;
    sleep(2); //Der "armen" CPU zuliebe :)
  end;
end;

procedure TForm1.Create(Sender:TObject);
begin
  DataAvailable:=false;
  thrData:=TDataThread.Create ...
  thrVisual:=TVisualThread.Create ...
end;
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz