Class AsyncQueue<TItem>
Async queue that can be processed by an implementation of AsyncQueueProcessor<TItem>
Inherited Members
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
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
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
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
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
Remarks
Get instance of the queue using ClassFactory or DI. ClassFactory.CreateRequired<IAsyncQueue<TItem>>()