Hallo, ich verwende die Class TWorkerThread aus diesem Beitrag:
Workerthread: Der Diener im Hintergrund
Ich habe mir davon eine eigene Klasse abgeleitet, welche noch eine Kontrollvariable enthält, sowie die zu verarbeitenden Daten.
Mittels der kontrollvariable soll geprüft werden ob die Daten verarbeitet werden dürfen oder nicht.
Das ganze Klappt auch soweit, bis ich die variable verändern will.
Danach kommt es zur
Exception, weil der thread wahrscheinlich im selben Moment, indem ich die Kontrollvariable verändern will darauf zugreifen will.
Wie kann ich das ganze umgehen?
Hier mal der Execute code von meinem Thread:
Delphi-Quellcode:
procedure TThreadLivetrack.Execute(aThread: TWorkerThread);
Const
szMsg = 'Executed by thread #%d';
begin
inherited;
//showmessage('ausgeführt');
if self.fIsEnd then
exit;
//Livetrack download;
try self.fLivetrack.download(5000) except end;
self.FLivetrack.refresh(self.fName,self.fATC,self.fTool);
//livetrack refresh
try self.fLivetrack.ConnectFTP(7000); except end;
try self.fLivetrack.upload() except end;
try self.fLivetrack.UploadInfoDaten() except end;
self.flivetrack.DisconnectFTP;
self.fisend := true;
//showmessage('ausgeführt');
end;