/// <summary>
 /// Initializes a new instance of the ParallelTaskProcesor class
 /// </summary>
 /// <param name="identifier">the unique identifier of this ParallelTaskProcessor instance</param>
 /// <param name="worker">A Callback that generates new Workers on Demand</param>
 /// <param name="highestPriority">the highest priority that is processed by this processor.</param>
 /// <param name="lowestPriority">the highest priority that is processed by this processor.</param>
 /// <param name="workerCount">the number of parallel Workers for this queue</param>
 /// <param name="workerPollTime">the pollTime after that a suspended poller re-checks the queues for more work</param>
 /// <param name="lowTaskThreshold">the minimum number of Items that should be in a queue for permanent processing</param>
 /// <param name="highTaskThreshold">the maximum number of Items that should be queued in a workerQueue</param>
 /// <param name="useAffineThreads">indicates whether to use ThreadAffinity in the workers</param>
 /// <param name="watchDog">a watchdog instance that will restart worker-instances when they become unresponsive</param>
 public ParallelTaskProcessor(string identifier, Func <ITaskWorker <TTask> > worker, int highestPriority, int lowestPriority, int workerCount, int workerPollTime, int lowTaskThreshold, int highTaskThreshold, bool useAffineThreads, bool runWithoutSchedulers, bool useTasks, WatchDog watchDog)
     : base(identifier, worker, highestPriority, lowestPriority, workerCount, workerPollTime, lowTaskThreshold, highTaskThreshold, useAffineThreads, runWithoutSchedulers, useTasks, watchDog)
 {
 }
 /// <summary>
 /// Initializes a new instance of the TaskWorker class
 /// </summary>
 /// <param name="identifier">the unique identifier of this taskprocessor</param>
 /// <param name="worker">the worker that is used by all ThreadWorkers</param>
 /// <param name="highestPriority">the highest Priority that is supported by this parallelProcessor</param>
 /// <param name="lowestPriority">the lowest Priority that is supported by this parallelProcessor</param>
 /// <param name="workerCount">the number of workers that are initialized in this ParallelTaskProcessor</param>
 /// <param name="workerPollTime">the number of milliseconds a worker waits between single cycles with nothing to do</param>
 /// <param name="lowTaskThreshold">the minimum number of Items that should be in a queue for permanent processing</param>
 /// <param name="highTaskThreshold">the maximum number of Items that should be queued in a workerQueue</param>
 /// <param name="useAffineThreads">indicates whether to use ThreadAffinity in the workers</param>
 /// <param name="watchDog">a watchdog instance that will restart worker-instances when they become unresponsive</param>
 protected ParallelTaskProcessor(string identifier, Func <ITaskWorker> worker, int highestPriority, int lowestPriority, int workerCount, int workerPollTime, int lowTaskThreshold, int highTaskThreshold, bool useAffineThreads, bool runWithoutSchedulers, bool useTasks, WatchDog watchDog) :
     this(identifier, worker, highestPriority, lowestPriority, workerCount, workerPollTime, lowTaskThreshold, highTaskThreshold, useAffineThreads, runWithoutSchedulers, useTasks)
 {
     this.watchDog = watchDog;
 }