AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Thread hart beenden
Thema durchsuchen
Ansicht
Themen-Optionen

Thread hart beenden

Ein Thema von Yamato · begonnen am 13. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
Yamato

Registriert seit: 13. Apr 2006
Ort: Berlin
2 Beiträge
 
Delphi 4 Standard
 
#1

Thread hart beenden

  Alt 13. Apr 2006, 17:42
Hallo,

Folgendes Problem:
Eine laufende Berechnung soll durch einen Buttonklick beendet werden. Dazu wird bei mir mit

TerminateThread(CalcThread.Handle, 0); der Berechnungs-Thread beendet. Das hat aber einige Nebenwirkungen: Es kann vorkommen, daß danach die Anwendung einfriert oder eine Exception auftritt. Wo liegt also das Problem und wie kann man es besser lösen? (Der Thread greift nur auf interne Daten zu, kann also problemlos beendet werden)

Zweites Problem:
Während der Berechnung soll der Mauszeiger in eine Sanduhr verwandelt werden (außer, falls sich der Zeiger über dem Abbruch-Button befindet). Dazu müßte ich aber bei jeder Komponente auf dem Formular die Cursor-Eigenschaft setzen - was viel zu kompliziert ist. Geht auch das schneller zu lösen?

Danke im Voraus

(Sorry, erst jetzt gesehen, daß ich im falschen Forum gepostet habe. Wie kann man das nachträglich ändern?)
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: Thread hart beenden

  Alt 13. Apr 2006, 18:12
Du könntest zwischen den einzelnen Schritten in der Execute-Prozedur deiner Thread-Klasse solche Abfragen einbauen:

Delphi-Quellcode:
// ...
  if (not Self.Terminated) then
  begin
// Rechnen
  end;
//...
Damit würde an der Stelle abggebrochen, wenn du den Thread beendest.

Für das Beende reicht dann ein einfaches

  NameDerThreadklassen-Instanz.Terminate; - edit -

Für das zweite Problem bitte einen extra Thread aufmachen.
Wenn man was über Forms und Cursor sucht, erwartet man sowas nicht in einem Thread mit dem Titel "Thread hart beenden".
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  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 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