Namespace SuperOffice.Threading
Classes
AsyncLazy<T>
Alternative to Lazy<T>. Simply wrapping our async tasks into a lazy value was not satisfactory, because 1) if it threw an exception inside the task, it would be permanently fixed to the lazy instance, and 2) it didn't allow us to pass a CancellationToken.
AsyncQueueBase<TItem>
Default implementation of IAsyncQueueBase<TItem> base functionality
AsyncQueueBase<TItem>.AsyncQueueItem
AsyncQueueBase<TItem>.AsyncQueueItemContext
AsyncQueueHandler<TAsynchronousHandlerProcessor, TAsynchronousArgument>
Base class replacing legacy system for quing things into an IAsyncQueue<TItem>.
AsyncQueueProcessor<TQueue, TItem>
Base class for hosted service processing items from an async queue
AsyncQueueTracker
Singleton registry that tracks all IAsyncQueueInstance instances created by the DI container.
AsyncQueue<TItem>
Async queue that can be processed by an implementation of AsyncQueueProcessor<TItem>
AsynchronousHandlerProcessor<TAsynchronousArgument>
Base class for processing carried out by AsynchronousHandler<TAsynchronousHandlerProcessor, TAsynchronousArgument> and implementations of such.
BackgroundThreadCleanupPluginAttribute
DelayedItem<TItem>
Internal type used by IDelayedAsyncQueue<TItem> to represent the condition to when an item is to be processed.
ISafeBlockingTaskInheritorExtensions
ParallelConsumerQueue<T>
A simple, threadsafe and blocking queue. Contains methods to easily have multiple, identical consumer threads.
ParallelProcessor<TParallelizedProcessor>
Processer that can run multiple ParallelizedProcessor instances in parallel.
ParallelizedProcessor
Base class for processing that can be run in parallel and controlled by the IParallelizedProcessorControlPlane. This is typically an instance of ParallelProcessor<TParallelizedProcessor>.
SafeBlockingTasks
TaskHelper
Interfaces
IAsyncQueueBase<TItem>
Interface that represents a queue, that can be proccessed by AsyncQueueProcessor<TItem>.
IAsyncQueueInstance
Non-generic interface for tracking all IAsyncQueueBase<TItem> instances at runtime.
IAsyncQueueProcessItemContext<TItem>
IAsyncQueue<TItem>
IBackgroundThreadCleanupPlugin
IDelayedAsyncQueue<TItem>
Interface implemented by NetServer's AsyncQueue
IParallelProcessor<TParallelizedProcessor>
IParallelizedProcessorControlPlane
Interface implemented to provide control plane for ParallelizedProcessor.
ISafeBlockingTaskInheritor
Interface implemented to support transponding values from a parent task/context onto a child task/context.
Delegates
AsyncQueueProcessItemAsync<TItem>
Callback to process an item in the queue asynchronously