WorkItemQueue
A WorkItemQueue holds work items that are ready to
            be run, either initially or after some dependency
            has been satisfied.
            
                
Get a bool indicating whether the queue is empty.
            
Gets a flag indicating whether this queue is used for parallel execution
            
Gets the total number of items processed so far
            
Gets the name of the work item queue.
            
Gets the current state of the queue
            
Gets the target ApartmentState for work items on this queue
            
Initializes a new instance of the  WorkItemQueue class.
            
Dequeue a WorkItem for processing
            
Enqueue a WorkItem to be processed
            
Pause the queue for restarting later
            
Start or restart processing of items from the queue
            
Signal the queue to stop