![]() |
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? |
Re: Thread synchronisieren...
Zitat:
|
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: |
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:
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...
procedure Foo;
var MyThread: TMyThread; begin MyThread := TMyThread.Create(true); MyThread.FreeOnTerminate := false; try MyThread.Resume; MyThread.WaitFor; finally MyThread.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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