AGB  ·  Datenschutz  ·  Impressum  







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

Thread beenden und auf ihn warten

Ein Thema von Brainstalker · begonnen am 22. Dez 2005 · letzter Beitrag vom 11. Mär 2017
 
Benutzerbild von Brainstalker
Brainstalker

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

Thread beenden und auf ihn warten

  Alt 22. Dez 2005, 23:33
Ich hab nichts passendes im Forum gefunden, also mache ich einen Thread auf.

Wenn mein Programm beendet wird, hagelt es einiges an Fehlern. Das liegt daran, dass ein Thread in meinem Programm läuft, der nicht korrekt beendet wird. Also beende ich den Thread kurz bevor ich das Programm beende. Es kann allerdings dann noch ein bisschen dauern bis der Thread beendet ist, weil die letzte Aktion noch zuende ausgeführt wird.
Delphi-Quellcode:
procedure TForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
  exitcode: cardinal;
begin
  // Thread beenden
  if Thd <> nil then begin
    GetExitCodeThread(Thd.Handle, exitcode);
    if exitcode = STILL_ACTIVE then
      Thd.Terminate;
  end;
  .
  .
  .
end;
Thd ist das Threadobjekt.

So ich hab mir überlegt ich pack einfach ein Thd.WaitFor; rein. Das Problem ist dann kommt es auch zu einem Fehler, denn wenn er versucht auf das Thread-Objekt zuzugreifen, ist es nicht mehr vorhanden.

Wird das Programm beendet, wird der Thread beendet.
Problem 1 (ohne WaitFor): Das Programm wird "zu schnell" beendet und der Thread arbeitet noch -> Fehler
Problem 2 (mit WaitFor): WaitFor wird aufgerufen, aber Thread-Objekt anscheinend nicht mehr da -> Fehler

Jetzt such ich nach einer Lösung, vielleicht bin ich im Moment zu übermüdet, aber ich bekomms einfach nicht hin. Wenn mein Programm beendet wird, soll einfach nur der Thread beendet und gewartet werden bis er beendet ist.
Michael N.
Brainstalker
  Mit Zitat antworten Zitat
 


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 02:42 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