TThread vorzeitig beenden -> Fehler



  • Hallo,

    Ich habe einen Theread das ich im Programm starte. Da dieser Zeit eine lange Ausführungszeit hat hab ich nun folgenedes Problem:

    Wenn der Thread läuft udn man möchte das Programm beenden kommen viele Fehler sowie "Abnormal program termination".

    Ich habe schon versucht dem Therad u prüfen wenn er aktiv ist im FormClose Ereigniss den Thread zu beendne jedoch mit dem selben Ergebniss.
    Zurzeit ist das Programm nicht beendbar wenn der Thread läuft.

    Kann mir jemand sagen wie ich das hinbekomm, oder ist es eigentlich möglich?

    ~Jukka



  • Gegenfrage: Wie hast du denn den Thread beendet? Der beste Weg ist immer, wenn du ihm sagst, er soll sich selbst beenden (Hauptprogramm setzt einen Event, der vom Thread in regelmäßigen Abständen abgefragt wird).



  • Wenn ich den Thread laufen lasse bis er fertig ist geht alles wunderbar.
    Dieser Fehler kommt wenn ich den Thread starte und dann das Programm beende wärend der Thread läuft.

    Ich habe einen Check in FormClose der eigentlich mit Thread->Terminate() den Thread beendne soll was aber nicht der Fall ist irgendwie.



  • Hast Du in Execute() vielleicht sowas:

    for( ; Terminated == false ;)
    {
       // Mach was
    }
    

    ?
    Falls Du versuchst den Thread abzubrechen während er "Mach was" abarbeitet, merkt er den Abbruch erst, wenn er den nächsten Schleifendurchlauf startet.


Anmelden zum Antworten