Thread-Objekte definieren
Aus RAD Studio (Deutsch)
Nach oben zu Thread-Objekte definieren - Index
In den meisten Anwendungen wird ein Ausführungs-Thread durch ein Thread-Objekt repräsentiert. Solche Objekte vereinfachen die Entwicklung von Multithread-Anwendungen, indem sie die gängigsten Einsatzmöglichkeiten von Threads kapseln.
Anmerkung: Thread-Objekte bieten keine Kontrolle über die Sicherheitsattribute oder die Stack-Größe der Threads. Um auf diese Faktoren Einfluss zu nehmen, verwenden Sie die Funktion BeginThread. Einige der unter Threads koordinieren beschriebenen Objekte und Methoden zur Thread-Synchronisierung können zusammen mit BeginThread eingesetzt werden.
So verwenden Sie ein Thread-Objekt in Ihrer Anwendung:
- Erzeugen Sie einen neuen Nachkommen von classes.TThread. Wählen Sie dazu zunächst im Hauptmenü den Befehl .
- Doppelklicken Sie im Dialogfeld Objektgalerie auf Thread-Objekt und geben Sie einen Klassennamen ein, wie beispielweise TMyThread.
- Um den neuen Thread zu benennen, markieren Sie das Kontrollfeld Benannter Thread und geben einen Thread-Namen ein (nur VCL-Anwendungen)
- Klicken Sie auf OK. Im Quelltext-Editor wird eine neue Unit-Datei erstellt, um den Thread zu implementieren.
Nähere Informationen zur Benennung von Threads finden Sie unter Einen Thread benennen.
Anmerkung: Im Gegensatz zu den meisten Dialogfeldern der IDE, in denen die Eingabe eines Klassennamens erforderlich ist, wird im Dialogfeld Neues Thread-Objekt dem eingegebenen Klassennamen nicht automatisch der Buchstabe T vorangestellt.
Die automatisch generierte Unit-Datei enthält das Quelltextgerüst für die neue Thread-Klasse. Für einen Thread mit dem Namen TMyThread sieht die Datei beispielsweise folgendermaßen aus:
unit Unit2; interface uses Classes; type TMyThread = class(TThread) private { private-Deklarationen } protected procedure Execute; override; end; implementation { TMyThread } procedure TMyThread.Execute; begin { Thread-Code hier einfügen } end; end.
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit2.h" #pragma package(smart_init) //--------------------------------------------------------------------------- __fastcall TMyThread::TMyThread(bool CreateSuspended): TThread(CreateSuspended) { } //--------------------------------------------------------------------------- void __fastcall TMyThread::Execute() { // ---- Hier fügen Sie den Quelltext ein ---- } //---------------------------------------------------------------------------
Die automatisch generierte Unit-Datei bearbeiten Sie folgendermaßen:
- Sie initialisieren den Thread (optional).
- Sie schreiben die Thread-Funktion. Dazu wird der Quelltext der Methode Execute eingefügt.
- Sie schreiben Clean-up-Quelltext (optional).