Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
21. Nov 2014
Öhm, das ist doch offensichtlich und darum habe ich den Code doch auch in 2 Variationen eingestellt. Einmal mit Abfrage s.ShouldExit und einmal ohne. Bei beiden wird die Verarbeitung der Tasks vorzeitig abgebrochen, allerdings sind einige Tasks schon über dem PointOfNoReturn und werden trotzdem noch durch die Worker-Threads verarbeitet.
Und genau für diese durchgerutschten Tasks frage ich den...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
21. Nov 2014
Steht aber in der Doku http://docwiki.embarcadero.com/Libraries/XE7/de/System.Threading.TParallel.For
class function &For(Sender: TObject; ALowInclusive, AHighInclusive: Integer; AIteratorEvent: TIteratorEvent): TLoopResult; overload; static; inline;
class function &For(Sender: TObject; ALowInclusive, AHighInclusive: Integer; AIteratorEvent: TIteratorEvent; APool: TThreadPool): TLoopResult;...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
21. Nov 2014
Weil for ein reserviertes Wort ist. Und um das so zu deklarieren muss man ein & davor setzen.
TFoo = class
procedure &For;
procedure &Type;
procedure &Begin;
procedure &End;
procedure &Class;
procedure &procedure;
end;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
21. Nov 2014
Ja, da gibt es doch ein Break (mir war doch auch so :oops:)
procedure Foo;
var
LValue: Integer;
begin
LValue := 0;
TParallel.&For( 1, 1000,
procedure( L: Integer; S: TParallel.TLoopState )
begin
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Sir Rufo,
21. Nov 2014
Du musst dir ein zentrales Break selber bauen ...
procedure Foo;
var
LBreak: Boolean;
LValue: Integer;
begin
LBreak := False;
LValue := 0;
TParallel.&For( 1, 1000,