Einzelnen Beitrag anzeigen

Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#1

Thread beenden, bessere Möglichkeit

  Alt 24. Nov 2005, 22:04
Gut also ein "Problem" vor dem ich länger stehe ist, dass ich nicht genau weiß wie ich meinen Thread beenden soll.

Ich erstelle in meiner Anwendung einen Thread mit der VCL-Thread-Klasse TThread. Dann werden dem Thread einige Dinge übergeben und er wird gestartet. Dem benutzer soll nun aber auch die Möglichkeit gegeben werden den Thread zu beenden. Also dachte ich mir ich setz die Eigenschaft Terminated auf true und beende den Thread dann.

So jetzt zum eigentlichen Problem. Der Thread führt viele Sachen nacheinander aus, das heißt es ist keine Schleife. Das bedeutet, das ich nach jedem Größeren Abschnitt und/oder in jeder Schleife (kommen welche in einigen Abschnitten vor) prüfen muss ob der Thread "beendet" ist. Meiner Meinung nach ist das ein bisschen viel, nur um einen Thread zu beenden. Aber mir würde spontan nichts anderes einfallen.
Zum anderen soll der Thread beendet werden, wenn ein Fehler (Warnung) entsteht, dafür müsste ich auch jedes mal Prüfen, ob bereits ein Fehler (Warnung) enstanden ist oder nicht.

Gibt es da noch eine andere Möglichkeit den Thread zu beenden? Ich finde diese Methode nicht besonders effizient und verursacht einiges an zusätzlichem Code. Wenn das bereits die beste Möglichkeit ist, muss ich sie akzeptieren. Ansonsten such ich nach einer anderen.
TerminateThread würde ich nicht so gern benutzen weil das einfach eine Vergewaltigung für den Thread ist und wenn ich meine Anwendung beende, bekomm ich meistens AVs und das ist nicht so geschickt.


MfG Brainstalker
Michael N.
Brainstalker
  Mit Zitat antworten Zitat