public ProducerOfWork(GeneratorOfNumbersToSum realProducer, ConcurrentQueueLimitedSize <NumbersToSum> producerConsumerQueue, ManualResetEvent producerEvent, ManualResetEventSlim consumerEvent)
 {
     _producerConsumerQueue = producerConsumerQueue;
     _producerEvent         = producerEvent;
     _realProduce           = realProducer;
     _consumerEvent         = consumerEvent;
     _log = LogManager.GetLogger(typeof(ProducerOfWork));
 }
 public ConsumerOfWork(SummatorOfNumbers realWorker, ManagerOfProducers managerOfProducers, ConcurrentQueueLimitedSize <NumbersToSum> producerConsumerQueue, ManualResetEvent producerEvent, ManualResetEventSlim consumerEvent)
 {
     _producerConsumerQueue = producerConsumerQueue;
     _producerEvent         = producerEvent;
     _consumerEvent         = consumerEvent;
     _managerOfProducers    = managerOfProducers;
     _realWorker            = realWorker;
     _log = LogManager.GetLogger(typeof(ConsumerOfWork));
 }
        public ManagerOfProducers()
        {
            producers = new List <ProducerOfWork>();
            _producerConsumerQueue = new ConcurrentQueueLimitedSize <NumbersToSum>(7);
            _producerEvent         = new ManualResetEvent(true);
            _consumerEvent         = new ManualResetEventSlim(false);

            consumers = new List <ConsumerOfWork>();
        }