Show / Hide Table of Contents

Class WorkQueue<TContext>

Maintains a queue of pending work - every WorkItem posting in the queue will be executed by the host of the queue. WorkQueues are useful for coordination of complex data/event flows in multi-threaded/service applications

Inheritance
System.Object
WorkQueue<TContext>
Implements
IWorkQueue<TContext>
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: NFX.ServiceModel
Assembly: NFX.dll
Syntax
public class WorkQueue<TContext> : IWorkQueue<TContext> where TContext : class
Type Parameters
Name Description
TContext

Constructors

WorkQueue(TContext)

Creates an instance of work queue in particular context

Declaration
public WorkQueue(TContext context)
Parameters
Type Name Description
TContext context

WorkQueue(TContext, PostItemFilter<TContext>)

Creates an instance of work queue in particular context with specific woprk item post filter

Declaration
public WorkQueue(TContext context, PostItemFilter<TContext> filter)
Parameters
Type Name Description
TContext context
PostItemFilter<TContext> filter

Properties

Context

Returns context that work is processed in

Declaration
public TContext Context { get; }
Property Value
Type Description
TContext

PendingCount

Returns pending number of work items

Declaration
public int PendingCount { get; }
Property Value
Type Description
System.Int32

ProcessedFailureCount

Returns total number of work items processed with errors by this queue since its creation

Declaration
public long ProcessedFailureCount { get; }
Property Value
Type Description
System.Int64

ProcessedSuccessCount

Returns total number of work items processed without errors by this queue since its creation

Declaration
public long ProcessedSuccessCount { get; }
Property Value
Type Description
System.Int64

ProcessedTotalCount

Returns total number of work items processed with or without errors by this queue since its creation

Declaration
public long ProcessedTotalCount { get; }
Property Value
Type Description
System.Int64

Methods

FetchDueItem()

Takes due item off the queue without executing it and returns it, or returns null when queue is empty.

Declaration
public IWorkItem<TContext> FetchDueItem()
Returns
Type Description
IWorkItem<TContext>

PostItem(IWorkItem<TContext>)

Posts work item into the queue in natural queue order (at the end of the queue)

Declaration
public void PostItem(IWorkItem<TContext> work)
Parameters
Type Name Description
IWorkItem<TContext> work

ProcessDueItem()

Processes item in normal queue order (the item that is due to be processed). Returns true when there was an item in the queue. This method does not leak exceptions from work performance unless they are re-thrown by particular work item WorkFailed(error)

Declaration
public bool ProcessDueItem()
Returns
Type Description
System.Boolean

Implements

IWorkQueue<TContext>

Extension Methods

MiscUtils.NonNull<T>(T, Func<Exception>, String)
ObjectValueConversion.AsString(Object, String, ConvertErrorHandling)
ObjectValueConversion.AsNonNullOrEmptyString(Object)
ObjectValueConversion.AsLaconicConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsJSONConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsXMLConfig(Object, ConfigSectionNode, ConvertErrorHandling)
ObjectValueConversion.AsChar(Object, Char, ConvertErrorHandling)
ObjectValueConversion.AsNullableChar(Object, Nullable<Char>, ConvertErrorHandling)
ObjectValueConversion.AsByte(Object, Byte, ConvertErrorHandling)
ObjectValueConversion.AsNullableByte(Object, Nullable<Byte>, ConvertErrorHandling)
ObjectValueConversion.AsSByte(Object, SByte, ConvertErrorHandling)
ObjectValueConversion.AsNullableSByte(Object, Nullable<SByte>, ConvertErrorHandling)
ObjectValueConversion.AsShort(Object, Int16, ConvertErrorHandling)
ObjectValueConversion.AsNullableShort(Object, Nullable<Int16>, ConvertErrorHandling)
ObjectValueConversion.AsUShort(Object, UInt16, ConvertErrorHandling)
ObjectValueConversion.AsNullableUShort(Object, Nullable<UInt16>, ConvertErrorHandling)
ObjectValueConversion.AsInt(Object, Int32, ConvertErrorHandling)
ObjectValueConversion.AsNullableInt(Object, Nullable<Int32>, ConvertErrorHandling)
ObjectValueConversion.AsUInt(Object, UInt32, ConvertErrorHandling)
ObjectValueConversion.AsNullableUInt(Object, Nullable<UInt32>, ConvertErrorHandling)
ObjectValueConversion.AsLong(Object, Int64, ConvertErrorHandling)
ObjectValueConversion.AsNullableLong(Object, Nullable<Int64>, ConvertErrorHandling)
ObjectValueConversion.AsULong(Object, UInt64, ConvertErrorHandling)
ObjectValueConversion.AsNullableULong(Object, Nullable<UInt64>, ConvertErrorHandling)
ObjectValueConversion.AsDouble(Object, Double, ConvertErrorHandling)
ObjectValueConversion.AsNullableDouble(Object, Nullable<Double>, ConvertErrorHandling)
ObjectValueConversion.AsFloat(Object, Single, ConvertErrorHandling)
ObjectValueConversion.AsNullableFloat(Object, Nullable<Single>, ConvertErrorHandling)
ObjectValueConversion.AsDecimal(Object, Decimal, ConvertErrorHandling)
ObjectValueConversion.AsNullableDecimal(Object, Nullable<Decimal>, ConvertErrorHandling)
ObjectValueConversion.AsBool(Object, Boolean, ConvertErrorHandling)
ObjectValueConversion.AsNullableBool(Object, Nullable<Boolean>, ConvertErrorHandling)
ObjectValueConversion.AsGUID(Object, Guid, ConvertErrorHandling)
ObjectValueConversion.AsNullableGUID(Object, Nullable<Guid>, ConvertErrorHandling)
ObjectValueConversion.AsDateTime(Object)
ObjectValueConversion.AsDateTime(Object, DateTime, ConvertErrorHandling)
ObjectValueConversion.AsNullableDateTime(Object, Nullable<DateTime>, ConvertErrorHandling)
ObjectValueConversion.AsGDID(Object)
ObjectValueConversion.AsGDID(Object, GDID, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDID(Object, Nullable<GDID>, ConvertErrorHandling)
ObjectValueConversion.AsGDIDSymbol(Object)
ObjectValueConversion.AsGDIDSymbol(Object, GDIDSymbol, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDIDSymbol(Object, Nullable<GDIDSymbol>, ConvertErrorHandling)
ObjectValueConversion.AsTimeSpan(Object)
ObjectValueConversion.AsTimeSpan(Object, TimeSpan, ConvertErrorHandling)
ObjectValueConversion.AsNullableTimeSpan(Object, Nullable<TimeSpan>, ConvertErrorHandling)
ObjectValueConversion.AsEnum<TEnum>(Object, TEnum, ConvertErrorHandling)
ObjectValueConversion.AsNullableEnum<TEnum>(Object, Nullable<TEnum>, ConvertErrorHandling)
ObjectValueConversion.AsUri(Object, Uri, ConvertErrorHandling)
JSONExtensions.ToJSON(Object, JSONWritingOptions)
JSONExtensions.ToJSON(Object, TextWriter, JSONWritingOptions)
JSONExtensions.ToJSON(Object, Stream, JSONWritingOptions, Encoding)
ErlObject.ToErlObject(Object)
ErlObject.ToErlObject(Object, ErlTypeOrder, Boolean)
Back to top Copyright © 2006-2018 Agnicore Inc
Generated by DocFX