public class ProcessQueue<T> : IList<T>, 
	ICollection<T>, IEnumerable<T>, IEnumerable, IProvideStatus, ISupportLifecycle, 
	IDisposable
Public Class ProcessQueue(Of T)
	Implements IList(Of T), ICollection(Of T), 
	IEnumerable(Of T), IEnumerable, IProvideStatus, ISupportLifecycle, IDisposablegeneric<typename T>
public ref class ProcessQueue : IList<T>, 
	ICollection<T>, IEnumerable<T>, IEnumerable, IProvideStatus, ISupportLifecycle, 
	IDisposableThis class acts as a strongly-typed collection of objects to be processed.
Note that the ProcessQueueT will not start processing until the Start method is called.
| CancellationToken | Gets the per processing thread cancellation token to check when a ProcessTimeout is specified. | 
| CanProcessItemFunction | Gets or sets the user function determining if an item is ready to be processed. | 
| Count | Gets the number of elements actually contained in the ProcessQueueT. | 
| CurrentStatistics | Gets the current run-time statistics of the ProcessQueueT as a single group of values. | 
| Enabled | Gets or sets indicator that the ProcessQueueT is currently enabled. | 
| InternalEnumerable | Allows derived classes to access the interfaced internal ProcessQueueT directly. | 
| InternalList | Gets the internal list for direct use by ProcessQueueT. | 
| IsDisposed | Gets a flag that indicates whether the object has been disposed. | 
| IsEmpty | Gets a value that indicates whether the ProcessQueueT is empty. | 
| IsProcessing | Gets indicator that the ProcessQueueT is actively processing items. | 
| IsReadOnly | Gets a value indicating whether the ProcessQueueT is read-only. | 
| IsSynchronized | Gets a value indicating whether access to the ProcessQueueT is synchronized (thread safe). Always returns true for ProcessQueueT. | 
| Item | Gets or sets the element at the specified index. | 
| ItemsBeingProcessed | Gets the total number of items currently being processed. | 
| MaximumThreads | Gets or sets the maximum number of threads to process simultaneously. | 
| Name | Gets or sets name for this ProcessQueueT. | 
| ProcessingIsRealTime | Gets indicator that items will be processed in real-time. | 
| ProcessingStyle | Gets the item QueueProcessingStyle for the ProcessQueueT (i.e., one at a time or many at once). | 
| ProcessInterval | Gets or sets the interval, in milliseconds, on which new items begin processing. | 
| ProcessItemFunction | Gets or sets the user function for processing individual items in the ProcessQueueT one at a time. | 
| ProcessItemsFunction | Gets or sets the user function for processing multiple items in the ProcessQueueT at once. | 
| ProcessTimeout | Gets or sets the maximum time, in milliseconds, allowed for processing an item. | 
| RequeueModeOnException | Gets or sets the mode of insertion used (prefix or suffix) when at item is placed back into the ProcessQueueT after an exception occurs while processing. | 
| RequeueModeOnTimeout | Gets or sets the mode of insertion used (prefix or suffix) when at item is placed back into the ProcessQueueT after processing times out. | 
| RequeueOnException | Gets or sets whether or not to automatically place an item back into the ProcessQueueT if an exception occurs while processing. | 
| RequeueOnTimeout | Gets or sets whether or not to automatically place an item back into the ProcessQueueT if the processing times out. | 
| RunTime | Gets the total amount of time, in seconds, that the ProcessQueueT has been active. | 
| Status | Gets current status of ProcessQueueT. | 
| SynchronizedOperationType | Gets or sets the type of synchronized operation used to process items in a real-time ProcessQueueT. | 
| SyncRoot | Gets an object that can be used to synchronize access to the ProcessQueueT. | 
| ThreadCount | Gets the current number of active threads. | 
| ThreadingMode | Gets the current QueueThreadingMode for the ProcessQueueT (i.e., synchronous or asynchronous). | 
| TotalFunctionCalls | Gets the total number of calls to ProcessItemFunction or ProcessItemsFunction. | 
| TotalProcessedItems | Gets the total number of items processed so far. | 
| Add | Adds an item to the ProcessQueueT. | 
| AddRange | Adds the elements of the specified collection to the end of the ProcessQueueT. | 
| BinarySearch(T) | Searches the entire sorted ProcessQueueT, using a binary search algorithm, for an element using the default comparer and returns the zero-based index of the element. | 
| BinarySearch(T, IComparerT) | Searches the entire sorted ProcessQueueT, using a binary search algorithm, for an element using the specified comparer and returns the zero-based index of the element. | 
| BinarySearch(Int32, Int32, T, IComparerT) | Searches a range of elements in the sorted ProcessQueueT, using a binary search algorithm, for an element using the specified comparer and returns the zero-based index of the element. | 
| CanProcessItem | Determines if an item can be processed. | 
| CanProcessItems | Determines if all items can be processed. | 
| Clear | Removes all elements from the ProcessQueueT. | 
| Contains | Determines whether an element is in the ProcessQueueT. | 
| ConvertAllTOutput | Converts the elements in the current ProcessQueueT to another type, and returns a ProcessQueueT containing the converted elements. | 
| CopyTo | Copies the entire ProcessQueueT to a compatible one-dimensional array, starting at the beginning of the target array. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemFunctionSignature) | Creates a new asynchronous ProcessQueueT with the default settings: ProcessInterval = 100, MaximumThreads = 5, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemsFunctionSignature) | Creates a new asynchronous, bulk item ProcessQueueT with the default settings: ProcessInterval = 100, MaximumThreads = 5, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature) | Creates a new asynchronous ProcessQueueT with the default settings: ProcessInterval = 100, MaximumThreads = 5, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemFunctionSignature, Int32) | Creates a new asynchronous ProcessQueueT with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature) | Creates a new asynchronous, bulk item ProcessQueueT with the default settings: ProcessInterval = 100, MaximumThreads = 5, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, Int32) | Creates a new asynchronous, bulk item ProcessQueueT with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Int32) | Creates a new asynchronous ProcessQueueT with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Int32) | Creates a new asynchronous, bulk item ProcessQueueT with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemFunctionSignature, Double, Int32, Int32, Boolean, Boolean) | Creates a new asynchronous ProcessQueueT using specified settings. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, Double, Int32, Int32, Boolean, Boolean) | Creates a new asynchronous, bulk item ProcessQueueT using specified settings. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Double, Int32, Int32, Boolean, Boolean) | Creates a new asynchronous ProcessQueueT using specified settings. | 
| CreateAsynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Double, Int32, Int32, Boolean, Boolean) | Creates a new asynchronous, bulk item ProcessQueueT using specified settings. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemFunctionSignature) | Creates a new real-time ProcessQueueT with the default settings: ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemsFunctionSignature) | Creates a new real-time, bulk item ProcessQueueT with the default settings: ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature) | Creates a new real-time ProcessQueueT with the default settings: ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemsFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature) | Creates a new real-time, bulk item ProcessQueueT with the default settings: ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemFunctionSignature, Int32, Boolean, Boolean) | Creates a new real-time ProcessQueueT using specified settings. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemsFunctionSignature, Int32, Boolean, Boolean) | Creates a new real-time, bulk item ProcessQueueT using specified settings. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Int32, Boolean, Boolean) | Creates a new real-time ProcessQueueT using specified settings. | 
| CreateRealTimeQueue(ProcessQueueTProcessItemsFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Int32, Boolean, Boolean) | Creates a new real-time, bulk item ProcessQueueT using specified settings. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemFunctionSignature) | Creates a new synchronous ProcessQueueT (i.e., single process thread) with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemsFunctionSignature) | Creates a new synchronous, bulk item ProcessQueueT (i.e., single process thread) with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature) | Creates a new synchronous ProcessQueueT (i.e., single process thread) with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature) | Creates a new synchronous, bulk item ProcessQueueT (i.e., single process thread) with the default settings: ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemFunctionSignature, Double, Int32, Boolean, Boolean) | Creates a new synchronous ProcessQueueT (i.e., single process thread) using specified settings. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, Double, Int32, Boolean, Boolean) | Creates a new synchronous, bulk item ProcessQueueT (i.e., single process thread) using specified settings. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Double, Int32, Boolean, Boolean) | Creates a new synchronous ProcessQueueT (i.e., single process thread) using specified settings. | 
| CreateSynchronousQueue(ProcessQueueTProcessItemsFunctionSignature, ProcessQueueTCanProcessItemFunctionSignature, Double, Int32, Boolean, Boolean) | Creates a new synchronous, bulk item ProcessQueueT (i.e., single process thread) using specified settings. | 
| DataAdded | Notifies queue that data was added and/or modified, so it can begin processing data. | 
| Dispose | Releases all the resources used by the ProcessQueueT object. | 
| Dispose(Boolean) | Releases the unmanaged resources used by the ProcessQueueT object and optionally releases the managed resources. | 
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object)  | 
| Exists | Determines whether the ProcessQueueT contains elements that match the conditions defined by the specified predicate. | 
| Finalize | 
            Releases the unmanaged resources before the ProcessQueueT object is reclaimed by GC.
             (Overrides ObjectFinalize)  | 
| Find | Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire ProcessQueueT. | 
| FindAll | Retrieves all elements that match the conditions defined by the specified predicate. | 
| FindIndex(PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ProcessQueueT that extends from the specified index to the last element. | 
| FindIndex(Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ProcessQueueT that extends from the specified index to the last element. | 
| FindIndex(Int32, Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ProcessQueueT that extends from the specified index to the last element. | 
| FindLast | Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire ProcessQueueT. | 
| FindLastIndex(PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire ProcessQueueT. | 
| FindLastIndex(Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the ProcessQueueT that extends from the first element to the specified index. | 
| FindLastIndex(Int32, Int32, PredicateT) | Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the ProcessQueueT that contains the specified number of elements and ends at the specified index. | 
| Flush | Blocks the current thread, if the ProcessQueueT is active (i.e., user has called "Start" method), until all items in ProcessQueueT are processed, and then stops the ProcessQueueT. | 
| ForEach | Performs the specified action on each element of the ProcessQueueT. | 
| GetEnumerator | Returns an enumerator that iterates through the ProcessQueueT. | 
| GetHashCode | Serves as the default hash function. (Inherited from Object)  | 
| GetRange | Creates a shallow copy of a range of elements in the source ProcessQueueT. | 
| GetType | Gets the Type of the current instance. (Inherited from Object)  | 
| IndexOf(T) | Searches for the specified object and returns the zero-based index of the first occurrence within the entire ProcessQueueT. | 
| IndexOf(T, Int32) | Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the ProcessQueueT that extends from the specified index to the last element. | 
| IndexOf(T, Int32, Int32) | Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the ProcessQueueT that starts at the specified index and contains the specified number of elements. | 
| Insert | Inserts an element into the ProcessQueueT at the specified index. | 
| InsertRange | Inserts the elements of a collection into the ProcessQueueT at the specified index. | 
| LastIndexOf(T) | Searches for the specified object and returns the zero-based index of the last occurrence within the entire ProcessQueueT. | 
| LastIndexOf(T, Int32) | Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the ProcessQueueT that extends from the first element to the specified index. | 
| LastIndexOf(T, Int32, Int32) | Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the ProcessQueueT that contains the specified number of elements and ends at the specified index. | 
| MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object)  | 
| OnItemProcessed | Raises the base class ItemProcessed event. | 
| OnItemsProcessed | Raises the base class ItemsProcessed event. | 
| OnItemsTimedOut | Raises the base class ItemsTimedOut event. | 
| OnItemTimedOut | Raises the base class ItemTimedOut event. | 
| OnProcessException | Raises the base class ProcessException event. | 
| Remove | Removes the first occurrence of a specific object from the ProcessQueueT. | 
| RemoveAll | Removes the all the elements that match the conditions defined by the specified predicate. | 
| RemoveAt | Removes the element at the specified index of the ProcessQueueT. | 
| RemoveRange | Removes a range of elements from the ProcessQueueT. | 
| RequeueItem | Requeues item into ProcessQueueT according to specified requeue reason. | 
| RequeueItems | Requeues items into ProcessQueueT according to specified requeue reason. | 
| Reverse | Reverses the order of the elements in the entire ProcessQueueT. | 
| Reverse(Int32, Int32) | Reverses the order of the elements in the specified range. | 
| SignalDataModified | Manually signals that data has been modified and processing should resume. | 
| Sort | Sorts the elements in the entire ProcessQueueT, using the default comparer. | 
| Sort(ComparisonT) | Sorts the elements in the entire ProcessQueueT, using the specified comparison. | 
| Sort(IComparerT) | Sorts the elements in the entire ProcessQueueT, using the specified comparer. | 
| Sort(Int32, Int32, IComparerT) | Sorts the elements in a range of elements in the ProcessQueueT, using the specified comparer. | 
| Start | Starts item processing. | 
| Stop | Stops item processing. | 
| ToArray | Copies the elements contained in the ProcessQueueT to a new array. | 
| ToString | Returns a string that represents the current object. (Inherited from Object)  | 
| TrueForAll | Determines whether every element in the ProcessQueueT matches the conditions defined by the specified predicate. | 
| TryTake(T) | Attempts to remove and return an object from the ProcessQueueT. | 
| TryTake(T) | Attempts to remove and return all objects from the ProcessQueueT. | 
| Disposed | Occurs when the class has been disposed. | 
| ItemProcessed | Event that is raised after an item has been successfully processed. | 
| ItemsProcessed | Event that is raised after an array of items have been successfully processed. | 
| ItemsTimedOut | Event that is raised if the processing time for an array of items exceeds the specified process timeout. | 
| ItemTimedOut | Event that is raised if an item's processing time exceeds the specified process timeout. | 
| ProcessException | Event that is raised if an exception is encountered while attempting to processing an item in the ProcessQueueT. | 
| DefaultMaximumThreads | Default maximum number of processing threads. | 
| DefaultProcessInterval | Default processing interval (in milliseconds). | 
| DefaultProcessTimeout | Default processing timeout (in milliseconds). | 
| DefaultRequeueModeOnException | Default setting for requeuing mode on processing exceptions. | 
| DefaultRequeueModeOnTimeout | Default setting for requeuing mode on processing timeout. | 
| DefaultRequeueOnException | Default setting for requeuing items on processing exceptions. | 
| DefaultRequeueOnTimeout | Default setting for requeuing items on processing timeout. | 
| RealTimeProcessInterval | Default real-time processing interval (in milliseconds). |