Class ParallelWorkQueue< T >
    Public
    
    Helper for parallelizing tasks.
More specifically this class is useful if the tasks need some large and slow to initialize 'scratch pad'. Using this class you can initialize a scratch pad per thread and then use the appropriate one in the task callback (which includes a thread index).
Any exception that is thrown in the worker threads will be propagated out to the caller of the Run method.
Public Methods
        
                ParallelWorkQueue
        
                (queue)
    
                
                
                    Public
                
            
        
                Run
        
                (progressTimeoutMillis)
    
                
                Execute the tasks.
                    Public
                
            Public Variables
        
                action
        
    
                
                Callback to run for each item in the queue.
                    Public
                
            
        
                threadCount
        
    
                
                Number of threads to use.
                    Public
                        Readonly
                
            Private/Protected Members
        
                initialCount
        
    
                
                
                    Private
                        Readonly
                
            
        
                innerException
        
    
                
                
                    Private
                
            
        
                queue
        
    
                
                Queue of items.
                    Private
                        Readonly
                
            
        
                RunTask
        
                (threadIndex)
    
                
                
                    Private
                
            
        
                waitEvents
        
    
                
                
                    Private