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) =>
{