Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function SomeFunction() : string;
- begin
- for value := 0 to length(listOfThings)-1 do
- begin
- Chain := Function1( listOfThings[value] );
- if Evaluate( Chain , Solution) then
- Parameters[value] := Solution
- else
- begin
- Result := 'ERROR';
- exit;
- end;
- end;
- end;
- function SomeFunction() : string;
- begin
- Parallel.ForEach(0, length(listOfThings)-1 ).Execute(
- procedure (const value: integer)
- var Chain : string;
- begin
- Chain := Function1(listOfThings[value]);
- if Evaluate(Chain , Solution) then
- Parameters[value] := Solution
- else
- begin
- Result := 'ERROR'; //Here is where it won't work
- exit;
- end;
- end
- );
- end;
- var
- cancelToken: IOmniCancellationToken;
- cancelToken := CreateOmniCancellationToken;
- Parallel.ForEach(...)
- .CancelWith(cancelToken)
- .Execute(...);
- cancelToken.Signal;
- cancelToken.IsSignaled
- function SomeFunction() : string;
- var
- cancelToken: IOmniCancellationToken;
- error: TOmniValue;
- begin
- cancelToken := CreateOmniCancellationToken;
- error := Parallel.ForEach(0, length(listOfThings)-1 ).
- CancelWith(cancelToken).
- Aggregate('',
- procedure(var aggregate: TOmniValue; const value: TOmniValue)
- var Chain : string;
- begin
- Chain := Function1(listOfThings[value]);
- if Evaluate(Chain , Solution) then
- Parameters[value] := Solution
- else
- begin
- aggregate := 'ERROR';
- cancelToken.signal;
- end;
- end).
- Execute(
- procedure(const value: TOmniValue; var result: TOmniValue)
- begin
- if value <> '' then
- result := value;
- end);
- if error <> '' then
- //something went wrong
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement