Advertisement
Guest User

Untitled

a guest
Apr 25th, 2014
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. function SomeFunction() : string;
  2. begin
  3.  
  4. for value := 0 to length(listOfThings)-1 do
  5. begin
  6.  
  7. Chain := Function1( listOfThings[value] );
  8.  
  9. if Evaluate( Chain , Solution) then
  10. Parameters[value] := Solution
  11. else
  12. begin
  13. Result := 'ERROR';
  14. exit;
  15. end;
  16. end;
  17. end;
  18.  
  19. function SomeFunction() : string;
  20. begin
  21.  
  22. Parallel.ForEach(0, length(listOfThings)-1 ).Execute(
  23.  
  24. procedure (const value: integer)
  25. var Chain : string;
  26. begin
  27. Chain := Function1(listOfThings[value]);
  28.  
  29. if Evaluate(Chain , Solution) then
  30. Parameters[value] := Solution
  31. else
  32. begin
  33. Result := 'ERROR'; //Here is where it won't work
  34. exit;
  35. end;
  36. end
  37. );
  38. end;
  39.  
  40. var
  41. cancelToken: IOmniCancellationToken;
  42.  
  43. cancelToken := CreateOmniCancellationToken;
  44.  
  45. Parallel.ForEach(...)
  46. .CancelWith(cancelToken)
  47. .Execute(...);
  48.  
  49. cancelToken.Signal;
  50.  
  51. cancelToken.IsSignaled
  52.  
  53. function SomeFunction() : string;
  54. var
  55. cancelToken: IOmniCancellationToken;
  56. error: TOmniValue;
  57. begin
  58. cancelToken := CreateOmniCancellationToken;
  59. error := Parallel.ForEach(0, length(listOfThings)-1 ).
  60. CancelWith(cancelToken).
  61. Aggregate('',
  62. procedure(var aggregate: TOmniValue; const value: TOmniValue)
  63. var Chain : string;
  64. begin
  65. Chain := Function1(listOfThings[value]);
  66.  
  67. if Evaluate(Chain , Solution) then
  68. Parameters[value] := Solution
  69. else
  70. begin
  71. aggregate := 'ERROR';
  72. cancelToken.signal;
  73. end;
  74. end).
  75. Execute(
  76. procedure(const value: TOmniValue; var result: TOmniValue)
  77. begin
  78. if value <> '' then
  79. result := value;
  80. end);
  81.  
  82. if error <> '' then
  83. //something went wrong
  84. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement