Show / Hide Table of Contents

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

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

ThreadwiseKeyCache<Item>

The purpose of this class is to contain a cache of items, with a separate cache per thread. The use case is that some class needs to maintain a unique list of items, uses a cache for this, and wants the list to be kept separate for each thread - even if the instance of the cache and/or client class is the same.

Interfaces

IAsyncQueueBase<TItem>

Interface that represents a queue, that can be proccessed by AsyncQueueProcessor<TItem>.

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

© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top