/// <summary>
        /// Initializes a new instance of the collection processor
        /// </summary>
        /// <param name="workItem">Callback for each thread, that processes collection item</param>
        /// <param name="processingQueue">Processing collection</param>
        public CollectionProcessorThreadPool(CollectionItemProcessorCallback <T> workItem, SimpleConcurrentQueue <T> processingQueue)
        {
            _processingQueue = processingQueue ?? new SimpleConcurrentQueue <T>();

            _workItem = workItem;

            InitPool();
        }
 /// <summary>
 /// Initializes a new instance of the collection processor
 /// </summary>
 /// <param name="workItem">Callback for each thread, that processes collection item</param>
 public CollectionProcessorThreadPool(CollectionItemProcessorCallback <T> workItem) : this(workItem, null)
 {
 }