AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread (ITask) abbrechen

Ein Thema von Cubysoft · begonnen am 13. Apr 2015 · letzter Beitrag vom 14. Apr 2015
Antwort Antwort
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#1

Thread (ITask) abbrechen

  Alt 13. Apr 2015, 23:40
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!
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Thread (ITask) abbrechen

  Alt 14. Apr 2015, 00:01
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#3

AW: Thread (ITask) abbrechen

  Alt 14. Apr 2015, 00:18
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
Tobias
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 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