Einzelnen Beitrag anzeigen

SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#1

Probelm mit WorkerThread...

  Alt 31. Mai 2009, 15:57
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;
  Mit Zitat antworten Zitat