Man schreibe das ganze statt in ein zeitbasiertes Array (Sleep) in ein normales Array. Danach hat man die Elemente auch in der richtigen Reihenfolge.
Delphi-Quellcode:
var
Elems : Array [Minwert..Maxwert] of Nullable<Integer>; //gib es den?
Temparray: Array [0..AnzWerte-1] of Integer;
begin
for i:= Low(Elems) to High(Elems)
begin
TempArray[Elems[i]] := elem;
end;
for i:= Low(TempArray) to High(TempArray)
begin
if not TempArray[i] = nil then
WriteLn(TempArray[i])
end;
end.
Dem Wertebereich sind natürlich auch Grenzen gesetzt (Arraygröße), aber man muss nicht ganz solange warten (2 Durchläufe)