/// <summary>
 /// Create processor
 /// </summary>
 /// <param name="config"></param>
 /// <param name="scheduler"></param>
 /// <param name="logger"></param>
 public TaskProcessor(ITaskProcessorConfig config, ITaskScheduler scheduler,
                      ILogger logger)
 {
     _logger     = logger ?? throw new ArgumentNullException(nameof(logger));
     _config     = config ?? throw new ArgumentNullException(nameof(config));
     _scheduler  = scheduler ?? throw new ArgumentNullException(nameof(scheduler));
     _processors = new List <ProcessorWorker>();
     for (var i = 0; i < Math.Max(1, config.MaxInstances); i++)
     {
         _processors.Add(new ProcessorWorker(this));
     }
 }
 /// <summary>
 /// Create processor
 /// </summary>
 /// <param name="config"></param>
 /// <param name="logger"></param>
 public TaskProcessor(ITaskProcessorConfig config, ILogger logger) :
     this(config, new DefaultScheduler(), logger)
 {
 }