Hallo Wissende,
ich kämpfe grad mit Threads. Dabei versuche ich auf das Ende eines Threads zu reagieren, nur, das Ereignis wird nie ausgeführt. Weiss einer warum und was man hier machen muß damit es funktioniert? Danke schon mal.
Hier der Start des threads:
Delphi-Quellcode:
procedure TWUSUpdatesCheck.Run;
begin
if fTempFileName = '' then CreateTempFilename;
if not CanRun then exit; //Nur wenn alle Parameter gefüllt sind
if fThreadRunning then exit; //Nur ein Download kann laufen
if fWUSDownloadThread <> NIL then
Raise EWUSException.Create(rWUS_Exeption_Internal_Error);
fWUSDownloadThread := TWUSDownloadThread.Create(true);
fWUSDownloadThread.URL := fUpdateListURL;
fWUSDownloadThread.Filename := fTempFileName;
fWUSDownloadThread.OnTerminate := OnFinishedDownload;
fWUSDownloadThread.FreeOnTerminate := false;
fWUSDownloadThread.Resume;
end;
und hier kommt er nie an:
Delphi-Quellcode:
procedure TWUSUpdatesCheck.OnFinishedDownload(Sender: TObject);
begin
{Hier die Daten übernehmen}
writeln('finished');
fThreadRunning := false;
FreeAndNIL(fWUSDownloadThread);
end;
Danke schon mal.
Greeny