diff --git a/src/Numerics/Control.cs b/src/Numerics/Control.cs
index 52dc2f8b..21bb583b 100644
--- a/src/Numerics/Control.cs
+++ b/src/Numerics/Control.cs
@@ -30,6 +30,7 @@
using MathNet.Numerics.Providers.LinearAlgebra;
using System;
+using System.Threading.Tasks;
namespace MathNet.Numerics
{
@@ -64,6 +65,7 @@ namespace MathNet.Numerics
_blockSize = 512;
_parallelizeOrder = 64;
_parallelizeElements = 300;
+ TaskScheduler = TaskScheduler.Default;
// Linear Algebra Provider
LinearAlgebraProvider = new ManagedLinearAlgebraProvider();
@@ -150,6 +152,11 @@ namespace MathNet.Numerics
set { _numberOfThreads = Math.Max(1, Math.Min(1024, value)); }
}
+ ///
+ /// Gets or sets the TaskScheduler used to schedule the worker tasks.
+ ///
+ public static TaskScheduler TaskScheduler { get; set; }
+
///
/// Gets or sets the the block size to use for
/// the native linear algebra provider.
diff --git a/src/Numerics/Threading/CommonParallel.cs b/src/Numerics/Threading/CommonParallel.cs
index d8c12729..6e93d465 100644
--- a/src/Numerics/Threading/CommonParallel.cs
+++ b/src/Numerics/Threading/CommonParallel.cs
@@ -52,7 +52,7 @@ namespace MathNet.Numerics.Threading
return new ParallelOptions
{
MaxDegreeOfParallelism = Control.NumberOfParallelWorkerThreads,
- //TaskScheduler = Control.TaskScheduler,
+ TaskScheduler = Control.TaskScheduler,
};
}