Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#15

Re: Multi Threaded Application

  Alt 16. Mär 2007, 10:55
Zitat von Moony:
Hallo......weiß keiner eine Antwort????
Du hast doch schon gute Antworten bekommen.
Also, dein Programm darf erst dann beendet werden, wenn alle deine Thread beendet sind.
Wird das nicht beachtet, dann knallt's !!
Wenn du deine Thread-Objekte nicht in einer Jobliste sammelst, dann hast du später
keinen Zugriff auf deine Threadobjekte mehr und weisst nicht, ob dein Programm beendet werden darf.

So ein Thread kann ja auch recht lange laufen.
Deshalb muss der Thread immer wieder das Property Terminated abfragen, ob er eigentlich noch weiterlaufen darf:
Delphi-Quellcode:
procedure TMyThread.Execute;
var
   i : integer;
begin
   for :=1 to 1000000 do
   begin
      DoWork;
      if Terminated then // <====
      begin
         ReturnValue := 9999; // signalisieren, dass wir unterbrochen wurden
         break;
      end;
   end;
   ReturnValue := 0; // Thread beendet, Aufgabe zu 100% erfüllt
end;
Hast du das beachtet ??
Andreas
  Mit Zitat antworten Zitat