Wie kann ich verhindern, dass lange Threads ordnungsgemäß ausgeführt werden?

Ich habe ein Threading-Problem mit Delphi. Ich denke, das ist auch in anderen Sprachen üblich. Ich habe einen langen Prozess, den ich in einem Thread mache, der eine Liste im Hauptfenster füllt. Aber wenn sich einige Parameter in der Zwischenzeit ändern, sollte ich den aktuell ausgeführten Thread stoppen und von vorne beginnen. Delphi schlägt vor, einen Thread zu beenden, indem Sie Terminated: = true setzen und den Wert dieser Variablen im Thread überprüfen. Mein Problem ist jedoch, dass der lange ausführende Teil in einem Bibliotheksaufruf vergraben ist und ich in diesem Aufruf nicht nach der terminierten Variablen suchen kann. Daher musste ich warten, bis dieser Bibliotheksaufruf beendet war, was sich auf das gesamte Programm auswirkte.

Was ist in diesem Fall die bevorzugte Vorgehensweise? Kann ich den Thread sofort beenden?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage