Das kann doch einfach nicht angehen
Delphi-Quellcode:
for i := 0 to Length(SearchThread) - 1 do begin
SearchThread[i].Resume;
SearchThread[i].WaitFor;
SearchThread[i].Free;
end;
Wenn SearchThread eine Länge von 2 hat, d.h. es gibt 2 Threads, dann führt er nur einen richtig aus.
Den ersten führt er aus (rückwärts, d.h. er fängt mit dem letzten an, hat wohl was mit der Compiler-Optimierung zu tun), warte brav bis er zu ende ist und gibt ihn frei. Danach führt er den zweiten aus, aber beendet ihn sofort ohne den Code von Execute auszuführen