Danke für Deine Änderungen, aber:
ThreadPool lässt sich nun ohne Fehlermeldung kompilieren.
Die beiliegenden Demos stürzen jedoch ab, im folgenden die ersten Fehlermeldungen mit dem angezeigten Codeabschnitt:
Code:
function IsTaskValid(Task:TPoolTask):Boolean;
begin
Result:=Owner.Tasks.IndexOf(Task) >= 0;
end;
->Erste Gelegenheit für
Exception bei $76EDFBAE.
Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00475AF1 in Modul 'PrimePoolProject.exe'. Lesen von Adresse 00000000'. Prozess PrimePoolProject.exe (4432)
Code:
procedure TPoolManager.WorkerTerminated(TerminatedWorker:TPoolWorker);
begin
BeginWriteWorkers;
try
Workers.Remove(TerminatedWorker);
finally
EndWriteWorkers;
MainSignal.SetEvent;
end;
end;
-> Erste Gelegenheit für
Exception bei $76EDFBAE.
Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00475AF1 in Modul 'PrimePoolProject.exe'. Lesen von Adresse 00000000'. Prozess PrimePoolProject.exe (4432)