Browse Source

add Control.TaskScheduler property

provider
Thomas Ibel 13 years ago
parent
commit
abcb95d102
  1. 7
      src/Numerics/Control.cs
  2. 2
      src/Numerics/Threading/CommonParallel.cs

7
src/Numerics/Control.cs

@ -30,6 +30,7 @@
using MathNet.Numerics.Providers.LinearAlgebra; using MathNet.Numerics.Providers.LinearAlgebra;
using System; using System;
using System.Threading.Tasks;
namespace MathNet.Numerics namespace MathNet.Numerics
{ {
@ -64,6 +65,7 @@ namespace MathNet.Numerics
_blockSize = 512; _blockSize = 512;
_parallelizeOrder = 64; _parallelizeOrder = 64;
_parallelizeElements = 300; _parallelizeElements = 300;
TaskScheduler = TaskScheduler.Default;
// Linear Algebra Provider // Linear Algebra Provider
LinearAlgebraProvider = new ManagedLinearAlgebraProvider(); LinearAlgebraProvider = new ManagedLinearAlgebraProvider();
@ -150,6 +152,11 @@ namespace MathNet.Numerics
set { _numberOfThreads = Math.Max(1, Math.Min(1024, value)); } set { _numberOfThreads = Math.Max(1, Math.Min(1024, value)); }
} }
/// <summary>
/// Gets or sets the TaskScheduler used to schedule the worker tasks.
/// </summary>
public static TaskScheduler TaskScheduler { get; set; }
/// <summary> /// <summary>
/// Gets or sets the the block size to use for /// Gets or sets the the block size to use for
/// the native linear algebra provider. /// the native linear algebra provider.

2
src/Numerics/Threading/CommonParallel.cs

@ -52,7 +52,7 @@ namespace MathNet.Numerics.Threading
return new ParallelOptions return new ParallelOptions
{ {
MaxDegreeOfParallelism = Control.NumberOfParallelWorkerThreads, MaxDegreeOfParallelism = Control.NumberOfParallelWorkerThreads,
//TaskScheduler = Control.TaskScheduler, TaskScheduler = Control.TaskScheduler,
}; };
} }

Loading…
Cancel
Save