Thema: Delphi Thread freezed - Warum??

Einzelnen Beitrag anzeigen

Sereby

Registriert seit: 31. Mär 2008
91 Beiträge
 
#1

Thread freezed - Warum??

  Alt 7. Jan 2010, 08:43
Hiho,

ich benutze Delphi 2009 U3 auf Win7 x64 RTM.
Folgendes Zenario:
1. ich habe einen Work-Thread erstellt um die GUI zugänglich zu lassen während das Programm arbeitet.
2. Habe ich die Verschiedenen Aufgaben ebenfalls in eigene Thread in deren eigenen Units gepackt

Das Problem ist dass der Arbeits-Thread auf beendigung der Aufgaben-Threads warten muss und dafür verwende ich Global in der GUI angelegte ThreadVariablen und .waitfor... also z.b. in der GUI steht dann
WorkThread: TWorkThread = nil;
ThreadAufgabe1: TThreadAufgabe1 = nil;
...

und auf diese variablen greif ich im Worker Thread auch zu und erstelle den Thread da drinnen

Delphi-Quellcode:
  if (ThreadAufgabe1 = nil) then
  begin
    ThreadAufgabe1 := TThreadAufgabe1.Create;
    ThreadAufgabe1.OnTerminate := frmGUI.OnAufgabe1ThreadTermination;
    ThreadAufgabe1.Resume;
    ThreadAufgabe1.WaitFor;
  end;
der Thread läuft auch durch und wartet auch.. aber irgendwie kommt der nicht zum ende?! Wenn ich Stoppunkte setze, und versuche mit F9 dahin zu springen, dann freezed der sofort! Wenn ich aber den thread nur mit F7 durchgehe, dann passiert der all meine Stoppunkte und freezed erst beim end; vom Execute part.

Was kann da schief laufen und wie kann ich das rausfinden warum das so ist?
Achja.. in Onterminate kommt er gar nicht erst rein!
  Mit Zitat antworten Zitat