AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Alle subThreads beenden beim programm beenden
Thema durchsuchen
Ansicht
Themen-Optionen

Alle subThreads beenden beim programm beenden

Ein Thema von Meflin · begonnen am 29. Jan 2004 · letzter Beitrag vom 1. Feb 2004
Antwort Antwort
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Alle subThreads beenden beim programm beenden

  Alt 31. Jan 2004, 17:39
Hallo Meflin,
Ich dachte nach Deinem letzten Posting, Du möchtest einfach nur warten,
bis sich alle Threads von selbst beendet haben und danach erst dem Anwender
erlauben das Fenster zu schließen.

Wenn Du aber alle offenen Threads auf einem Sitz beenden möchtest
würde ich bei VCL-Threads folgendes machen:

Delphi-Quellcode:
// Form1 Private
   FMyThreadList: TObjectList;

// Form1 create
   // False unterbindet das automatische Freigeben des Objekts in der Liste nach Delete.
   FMyThreadList:= TObjectList.create(False);

// Beim Erzeugen der Threads
   FMyThreadList.Add(WorkerThread);


PROCEDURE TForm1.HandleTerminate(Sender: TObject);
// Behandlungsroutine, wenn Thread zerstört wird
// Wenn sich ein Thread selbst beendet hat, muß die
// FMyThreadList aktualisiert werden.
VAR
  i : integer;
BEGIN
  FOR i := 0 TO FMyThreadList.Count - 1 DO
    IF Sender = FMyThreadList[i] THEN
      BEGIN
        FMyThreadList.Delete(i);
        Break;
      END;
END;

PROCEDURE TForm1.FormDestroy(Sender: TObject);
// Alle Threads killen, und warten bis sie fertig sind.
VAR
  i : integer;
BEGIN
  TRY
    FOR i := FMyThreadList.Count - 1 DOWNTO 0 DO
      BEGIN
        WITH TWorkerThread(FMyThreadList[i]) DO
          BEGIN
            // Verhindern, dass HandleTerminate aufgerufen wird
            OnTerminate := NIL;
            Terminate;
            WaitFor;
          END;
        FMyThreadList.Delete(i);
      END;
  FINALLY
    FMyThreadList.Free;
  END;
END;
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  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 08:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz