Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Thread synchronisieren... (https://www.delphipraxis.net/51166-thread-synchronisieren.html)

FriFra 7. Aug 2005 16:27


Thread synchronisieren...
 
Ich verwende in meinem Programm einen Thread um eine bestimmte Aufgabe entkoppelt vom Hauptthread auszuführen.
Jetzt hab ich allerdings das Problem, dass der Thread unter bestimmten Voraussetzungen komplett synchron zum Hauptthread laufen muss... Wie bekomme ich das hin?

Dani 7. Aug 2005 16:45

Re: Thread synchronisieren...
 
Zitat:

Zitat von FriFra
...komplett synchron zum Hauptthread laufen...

Hi, was genau muss wie synchronisiert werden? Warum müssen Worker-Thread und GUI-Thread "komplett synchron" laufen?

FriFra 7. Aug 2005 16:53

Re: Thread synchronisieren...
 
Zum aktualisieren div. Captions etc. im Hauptthread rufe ich div. proceduren des Threads schon über synchronize auf...
Aber: Ich habe für die bettr. Funktion, welche normalerweise im Hintergrund laufen soll auch ein Button auf einer Form des Mainthread. Klickt der User diesen Button an muss der Thread synchron laufen...

Der Thread hat ja die Methode StaticSynchronize, kann ich damit nicht mein Ziel erreichen? Ich hab nur keinen Plan, was ich da als Parameter übegeben muss :roll:

Dani 7. Aug 2005 17:19

Re: Thread synchronisieren...
 
Wenn der Thread die ButtonClick Methode blockieren soll gibt es die Methode TThread.WaitFor(). Die Ausführung des VCL-Hautpthreads wartet dann ab, bis der Worker-Thread seine Arbeit beendet hat.

Delphi-Quellcode:
procedure Foo;
var MyThread: TMyThread;
begin
  MyThread := TMyThread.Create(true);
  MyThread.FreeOnTerminate := false;
  try
   MyThread.Resume;
   MyThread.WaitFor;
  finally
   MyThread.Free;
  end;
end;
Hab aber trotzdem das Gefühl, dass das Problem noch nicht gelöst ist. :-/ Ich versteh nicht so ganz, was du mit "synchron laufen" meinst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz