diff --git a/src/MathNet.Numerics.5.1.ReSharper b/src/MathNet.Numerics.5.1.ReSharper index cd094073..1323a4a6 100644 --- a/src/MathNet.Numerics.5.1.ReSharper +++ b/src/MathNet.Numerics.5.1.ReSharper @@ -82,7 +82,8 @@ Wikipedia kronecker blocksize ipiv -dll +dll +Silverlight diff --git a/src/Numerics/Threading/CommonParallel.cs b/src/Numerics/Threading/CommonParallel.cs index ae29598d..bd5d4773 100644 --- a/src/Numerics/Threading/CommonParallel.cs +++ b/src/Numerics/Threading/CommonParallel.cs @@ -327,11 +327,17 @@ namespace MathNet.Numerics.Threading /// Executes each of the provided actions inside a discrete, asynchronous task. /// /// An array of actions to execute. - /// The actions array contains a null element. + /// The actions array contains a null element. /// An action threw an exception. public static void Invoke(params Action[] actions) { - Parallel.Invoke(actions); + var maxThreads = Control.DisableParallelization ? 1 : Control.NumberOfParallelWorkerThreads; + Parallel.Invoke( + new ParallelOptions + { + MaxDegreeOfParallelism = maxThreads + }, + actions); } /// @@ -361,9 +367,10 @@ namespace MathNet.Numerics.Threading } }); #else + var maxThreads = Control.DisableParallelization ? 1 : Control.NumberOfParallelWorkerThreads; Parallel.ForEach( Partitioner.Create(fromInclusive, toExclusive), - new ParallelOptions { MaxDegreeOfParallelism = Control.NumberOfParallelWorkerThreads }, + new ParallelOptions { MaxDegreeOfParallelism = maxThreads }, () => 0.0, (range, loop, localData) => { @@ -413,9 +420,10 @@ namespace MathNet.Numerics.Threading } }); #else + var maxThreads = Control.DisableParallelization ? 1 : Control.NumberOfParallelWorkerThreads; Parallel.ForEach( Partitioner.Create(fromInclusive, toExclusive), - new ParallelOptions { MaxDegreeOfParallelism = Control.NumberOfParallelWorkerThreads }, + new ParallelOptions { MaxDegreeOfParallelism = maxThreads }, () => 0.0f, (range, loop, localData) => {