Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Thread (ITask) abbrechen (https://www.delphipraxis.net/184676-thread-itask-abbrechen.html)

Cubysoft 13. Apr 2015 22:40

Thread (ITask) abbrechen
 
Hey,

mein Problem ist relativ einfach erklärt. Ich arbeite mit der - noch relativ neuen - ITask Componente. Ich erzeuge damit einen Thread, der in normalen Fällen ca. 3 Stunden laufen würde. Ca jede Sekunde fügt der Thread/Task einer TList einen Eintrag hinzu. Was ich nun machen wollte, war die Möglichkeit zu geben, diesen Task abbrechen zu können. Laut der Wiki geht das mit task.Cancel. Leider läuft der Thread gemütlich weiter..

Was ich mir vorstellen könnte ist, dass der Thread sich quasi zu jedem Zeitpunkt in einer Whileschleife "aufhängt". Eventuell kann er deshalb nicht beendet werden..

Die Frage ist nun: Wie kann ich den Thread abbrechen?

Vielen Dank!

Sir Rufo 13. Apr 2015 23:01

AW: Thread (ITask) abbrechen
 
Du musst selber prüfen ob der Task abgebrochen wurde, denn nur du weisst, ob und wo es sicher ist den Task zu beenden.
Delphi-Quellcode:
// Prüfen ob der Task abgebrochen wurde
TTask.CurrentTask.CheckCanceled; // wirft eine Exception, wenn der Task abgebrochen wurde

Cubysoft 13. Apr 2015 23:18

AW: Thread (ITask) abbrechen
 
Hey,

danke. Habe einen anderen Thread gefunden, in dem du eine Antwort gepostet hast. Man muss einfach im Thread selber den Status abfragen und dann entscheiden wo und wann beendet werden kann.

Vielen Dank :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz