Hallo,
1. Methode: Parallele Schleife
2. Methode: Sequentielle Schleife
3. Methode: Do something (gemeinsamer Code)
Headbucket
An etwas in der Art hatte ich auch schon gedacht nur nicht sehr weit.
Ja genau. Diese Direktive muss weg. Sie war nur zum Testen gedacht, um schnell an X-Stellen von For auf TParallel.For umzusteigen.
Also im Prinzip meinst du ... ?
Delphi-Quellcode:
procedure HauptProzedur;
var
X_Variablen ... : Integer; // Variablen die in SequentielleSchleife genutzt werden (z.B. i_: Integer);
procedure GemeinsamerCode(i: Integer);
begin
// Schleife abarbeiten
// Mache etwas mit i_
end;
procedure ParalleleSchleife;
begin
TParallel.For(0, 99,
procedure(i_: Integer; aLoopState: TParallel.TLoopState) // var "irgendwelche Variablen die in TParallel.For benötigt werden"
begin
// Spezifischer Code (aLoopState.Stop etc)
GemeinsamerCode(i_);
end);
end;
procedure SequentielleSchleife;
begin
for i_ := 0 to 99 do
begin
// Spezifischer Code (Break etc)
GemeinsamerCode(i_);
end;
end;
begin
if NutzeTParallelFor
ParalleleSchleife
else
SequentielleSchleife;
end; // Ende Hauptprozedur