Synchronisieren von Threads und GUI in einer Delphi-Anwendung
Beispielcode für eine GUI-Delphi-Anwendung mit mehreren Threads

Synchronisieren von Threads und GUI.
Multithreading in Delphi können Sie Anwendungen erstellen, die mehrere gleichzeitige Ausführungspfade enthalten.
Eine normale Delphi-Anwendung ist Single-Threaded, was bedeutet, dass alle VCL-Objekte auf ihre Eigenschaften zugreifen und ihre Methoden innerhalb dieses einzelnen Threads ausführen. Um die Datenverarbeitung in Ihrer Anwendung zu beschleunigen, schließen Sie einen oder mehrere sekundäre Threads ein.
Prozessor-Threads
EIN Faden ist ein Kommunikationskanal von einer Anwendung zu einem Prozessor. Single-Threaded-Programme benötigen eine Kommunikation, um während der Ausführung in beide Richtungen (zum und vom Prozessor) zu fließen; Multithreaded-Apps können mehrere verschiedene Kanäle öffnen und so die Ausführung beschleunigen.
Threads & GUI
Wenn in der Anwendung mehrere Threads laufen, stellt sich die Frage, wie Sie Ihre grafische Benutzeroberfläche als Ergebnis einer Thread-Ausführung aktualisieren können. Die Antwort liegt in der Klasse TThread Synchronisieren Methode.
Um die Benutzeroberfläche oder den Hauptthread Ihrer Anwendung von einem sekundären Thread aus zu aktualisieren, müssen Sie die Synchronize-Methode aufrufen. Diese Technik ist eine Thread-sichere Methode, die Multithreading-Konflikte vermeidet, die durch den Zugriff auf Objekteigenschaften oder Methoden entstehen können, die nicht Thread-sicher sind, oder durch die Verwendung von Ressourcen, die nicht im Hauptausführungs-Thread enthalten sind.
Unten sehen Sie ein Demo-Beispiel, das mehrere Schaltflächen mit Fortschrittsbalken verwendet, wobei jeder Fortschrittsbalken den aktuellen „Status“ der Thread-Ausführung anzeigt.
|_+_|Vielen Dank an Jens Borrisholt für das Einreichen dieses Codebeispiels.