TThread beenden
-
Hallo zusammen,
ich erstelle durch ButtonClick im Hauptformular einen eigenen Thread. Dieser heißt TMyThread. Danach läuft in einer eigenen Unit ein Programm ab, dass nun solange durchläuft, bis die Zeit, die der User eigegeben hat, abgelaufen ist.
Zwischenergebnisse werden auf einem anderen Formular ausgegeben. Auf diesem Formular soll ein Button plaziert werden, der den Thread abbricht, falls dies der User wünscht. Leider kann ich die Instanz der Klasse TMyThread dort nicht sichtbar machen.
Wie kann ich das beheben?
//Unit1.cpp void __fastcall TForm1::Button1Click(TObject *Sender) { TMyThread *F = new TMyThread(false); }Und in dem zweiten Formular:
void __fastcall TForm2::AbbrechenClick(TObject *Sender) { //Terminiere korrekt F! }Danke
-
Dann wäre es sicherlich sinnvoll den Thread auch in dem Formular zu erzeugen, in dem Du ihn beenden willst. Du musst Dir dafür nur den Zeiger auf die Thread-Instanz speichern.
Du müsstest also TMyThread *F zuz einem Member von TForm2 machen und nicht, wie in Deinem Beispiel, nur einen lokal gültigen Zeiger verwenden.
-
Hallo,
danke für deine Antwort.
Ich habe jetzt den Zeiger als Membervariable deklariert und funktioniert.
MFG
StefanN