Show / Hide Table of Contents

Class AsyncQueue<TItem>

Async queue that can be processed by an implementation of AsyncQueueProcessor<TItem>

Inheritance
object
AsyncQueueBase<TItem>
AsyncQueue<TItem>
Implements
IAsyncQueue<TItem>
IAsyncQueueBase<TItem>
Inherited Members
AsyncQueueBase<TItem>._itemsBeingProcessed
AsyncQueueBase<TItem>._dequeueLock
AsyncQueueBase<TItem>._principalAccessor
AsyncQueueBase<TItem>._logger
AsyncQueueBase<TItem>._endOfProcessingCancellation
AsyncQueueBase<TItem>.Enqueue(TItem)
AsyncQueueBase<TItem>.Requeue(IAsyncQueueProcessItemContext<TItem>)
AsyncQueueBase<TItem>.ProcessItemsAsync(AsyncQueueProcessItemAsync<TItem>, CancellationToken)
AsyncQueueBase<TItem>.SignalProcessingCanceled()
AsyncQueueBase<TItem>.WaitForItemsInQueueToBeProcessedAsync(CancellationToken)
AsyncQueueBase<TItem>.EnterQueueItemContext(AsyncQueueBase<TItem>.AsyncQueueItem)
object.ToString()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
Namespace: SuperOffice.Threading
Assembly: SoCore.dll
Syntax
public class AsyncQueue<TItem> : AsyncQueueBase<TItem>, IAsyncQueue<TItem>, IAsyncQueueBase<TItem>
Type Parameters
Name Description
TItem

Item to add and process in the queue

Remarks

Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()

Constructors

AsyncQueue(INSPrincipalAccessor, ILogger<AsyncQueue<TItem>>)

Async queue that can be processed by an implementation of AsyncQueueProcessor<TItem>

Declaration
public AsyncQueue(INSPrincipalAccessor principalAccessor, ILogger<AsyncQueue<TItem>> logger)
Parameters
Type Name Description
INSPrincipalAccessor principalAccessor
ILogger<AsyncQueue<TItem>> logger
Remarks

Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()

Properties

HasItemsInTheQueue

True if there are items in the queue

Declaration
public override bool HasItemsInTheQueue { get; }
Property Value
Type Description
bool
Overrides
AsyncQueueBase<TItem>.HasItemsInTheQueue
Remarks

Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()

Methods

GetInnerQueueCompletionTasks()

Async queue that can be processed by an implementation of AsyncQueueProcessor<TItem>

Declaration
protected override IEnumerable<Task> GetInnerQueueCompletionTasks()
Returns
Type Description
IEnumerable<Task>
Overrides
AsyncQueueBase<TItem>.GetInnerQueueCompletionTasks()
Remarks

Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()

InnerEnqueue(AsyncQueueItem)

Async queue that can be processed by an implementation of AsyncQueueProcessor<TItem>

Declaration
protected override void InnerEnqueue(AsyncQueueBase<TItem>.AsyncQueueItem queItem)
Parameters
Type Name Description
AsyncQueueBase<TItem>.AsyncQueueItem queItem
Overrides
AsyncQueueBase<TItem>.InnerEnqueue(AsyncQueueBase<TItem>.AsyncQueueItem)
Remarks

Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()

ProcessNextItemAsync(AsyncQueueProcessItemAsync<TItem>, CancellationToken)

Process the next item in the queue. Wait for there to be an item in the queue.to start processing

Declaration
public override Task ProcessNextItemAsync(AsyncQueueProcessItemAsync<TItem> processor, CancellationToken cancellationToken)
Parameters
Type Name Description
AsyncQueueProcessItemAsync<TItem> processor

Processor responsible for processing each item in the queue

CancellationToken cancellationToken
Returns
Type Description
Task
Overrides
AsyncQueueBase<TItem>.ProcessNextItemAsync(AsyncQueueProcessItemAsync<TItem>, CancellationToken)
Remarks

Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()

ToArray(bool)

Get a snapshot of all the items in the queue

Declaration
public override TItem[] ToArray(bool includeItemsBeingProcessed)
Parameters
Type Name Description
bool includeItemsBeingProcessed

Include items currently being processed in the snapshot

Returns
Type Description
TItem[]
Overrides
AsyncQueueBase<TItem>.ToArray(bool)
Remarks

Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()

Implements

IAsyncQueue<TItem>
IAsyncQueueBase<TItem>

Extension Methods

EnumUtil.MapEnums<From, To>(From)
Converters.MapEnums<From, To>(From)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top