Autor Beitrag
ralfi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 153



BeitragVerfasst: Mi 04.08.04 10:32 
Hallo!

Ich habe gleich zwei Fragen:

1. Wie kann ich beim Schließen des Programms alle laufende Threads sicher beenden und dabei das Progamm warten lassen, bis alle Threads beendet sind?

2. Kann man den oben beschriebenen Prozess irgendwie visualisieren? Ich meine, wenn die Threads einen nacheinander beendet werden, dauert es mind. Paar Sekunden. Dabei möchte ich dem User zeigen, dass das Programm noch etwas tut. Eine ProgressBar oder so was wäre super! Sicher hat jemand schon so was gemacht. ;-)

Danke!


Moderiert von user profile iconPeter Lustig: Topic aus VCL (Visual Component Library) verschoben am Wed 04.08.2004 um 11:33
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 04.08.04 10:49 
Hallo!

Zu 1. Thread.Free;

Zu 2. Nun, wenn der Thread freigegeben wurde, kannst du ja einfach eine Progressbar einstellen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
FRM_Ende.Show;
FRM_Ende.Progressbar.Pos:=0;
Thread1.Free;
FRM_Ende.Progressbar.Pos:=33;
Thread2.Free;
FRM_Ende.Progressbar.Pos:=66;
Thread3.Free;
FRM_Ende.Progressbar.Pos:=100;


Das ganze geht natürlich auch Schleifenbasiert, falls du eine Liste an Threads beenden musst.

Cu,
Udontknow
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 04.08.04 11:22 
imho werden die Threads beendet, wenn auch der Hauptthread beendet wird. Insofern reicht ein Programm.close völlig aus.

grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 04.08.04 11:25 
Die Threads werden vielleicht beendet, aber nicht freigegeben. Das spielt unter NT/W2K/XP-Systemen auch keine Rolle, sofern du wirklich das Programm beendest. Was aber, wenn du irgendwann beschliesst, dieses Formular nicht mehr als Hauptformular zu nehmen, sondern es in einem anderen Programm zu nutzen? Dann stapeln sich die Leichen auf. Also, sofort den sauberen Stil nehmen und Threads (wie jedes andere Objekt auch) abräumen.

Cu,
Udontknow
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.08.04 15:23 
Crossposting it der DP. Dort habe ich auch schon geantwortet, wie man so was macht.