Browse Source

small fixes in portable Parallel implementation

pull/197/head
Thomas Ibel 13 years ago
parent
commit
bec32e2a02
  1. 4
      src/Numerics/Compatibility.cs

4
src/Numerics/Compatibility.cs

@ -115,7 +115,7 @@ namespace MathNet.Numerics
tasks[i] = Task.Factory.StartNew(action, parallelOptions.CancellationToken, TaskCreationOptions.None, parallelOptions.TaskScheduler); tasks[i] = Task.Factory.StartNew(action, parallelOptions.CancellationToken, TaskCreationOptions.None, parallelOptions.TaskScheduler);
} }
Task.WaitAll(tasks); Task.WaitAll(tasks, parallelOptions.CancellationToken);
} }
public static void ForEach<TSource, TLocal>( public static void ForEach<TSource, TLocal>(
@ -132,13 +132,11 @@ namespace MathNet.Numerics
for (var i = 0; i < tasks.Length; i++) for (var i = 0; i < tasks.Length; i++)
{ {
var chunk = chunks[i]; var chunk = chunks[i];
tasks[i] = Task.Factory.StartNew(() => tasks[i] = Task.Factory.StartNew(() =>
{ {
var local = localInit(); var local = localInit();
local = body(chunk, loopState, local); local = body(chunk, loopState, local);
localFinally(local); localFinally(local);
return local;
}, parallelOptions.CancellationToken, TaskCreationOptions.None, parallelOptions.TaskScheduler); }, parallelOptions.CancellationToken, TaskCreationOptions.None, parallelOptions.TaskScheduler);
} }

Loading…
Cancel
Save