Unosquare
    Show / Hide Table of Contents

    Class ThreadWorkerBase

    Provides a base implementation for application workers that perform continuous, long-running tasks. This class provides the ability to perform fine-grained control on these tasks.

    Inheritance
    Object
    WorkerBase
    ThreadWorkerBase
    Implements
    IWorker
    IDisposable
    Inherited Members
    WorkerBase.Name
    WorkerBase.Period
    WorkerBase.WorkerState
    WorkerBase.IsDisposed
    WorkerBase.IsDisposing
    WorkerBase.DefaultPeriod
    WorkerBase.IsStopRequested
    WorkerBase.CycleStopwatch
    WorkerBase.StateChangeRequests
    WorkerBase.CycleCompletedEvent
    WorkerBase.StateChangedEvent
    WorkerBase.CycleCancellation
    WorkerBase.StateChangeTask
    WorkerBase.Dispose()
    WorkerBase.Dispose(Boolean)
    WorkerBase.OnCycleException(Exception)
    WorkerBase.ExecuteCycleLogic(CancellationToken)
    WorkerBase.OnStateChangeProcessed(WorkerState, WorkerState)
    WorkerBase.ComputeCycleDelay(WorkerState)
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Swan.Threading
    Syntax
    public abstract class ThreadWorkerBase : WorkerBase, IWorker, IDisposable

    Constructors

    ThreadWorkerBase(String, ThreadPriority, TimeSpan, IWorkerDelayProvider)

    Initializes a new instance of the ThreadWorkerBase class.

    Declaration
    protected ThreadWorkerBase(string name, ThreadPriority priority, TimeSpan period, IWorkerDelayProvider delayProvider)
    Parameters
    Type Name Description
    String name

    The name.

    ThreadPriority priority

    The thread priority.

    TimeSpan period

    The interval of cycle execution.

    IWorkerDelayProvider delayProvider

    The cycle delay provide implementation.

    ThreadWorkerBase(String, TimeSpan)

    Initializes a new instance of the ThreadWorkerBase class.

    Declaration
    protected ThreadWorkerBase(string name, TimeSpan period)
    Parameters
    Type Name Description
    String name

    The name.

    TimeSpan period

    The execution interval.

    Properties

    DelayProvider

    Provides an implementation on a cycle delay provider.

    Declaration
    protected IWorkerDelayProvider DelayProvider { get; }
    Property Value
    Type Description
    IWorkerDelayProvider

    Methods

    ExecuteCycleDelay(Int32, Task, CancellationToken)

    Suspends execution queues a new new cycle for execution. The delay is given in milliseconds. When overridden in a derived class the wait handle will be set whenever an interrupt is received.

    Declaration
    protected virtual void ExecuteCycleDelay(int wantedDelay, Task delayTask, CancellationToken token)
    Parameters
    Type Name Description
    Int32 wantedDelay

    The remaining delay to wait for in the cycle.

    Task delayTask

    Contains a reference to a task with the scheduled period delay.

    CancellationToken token

    The cancellation token to cancel waiting.

    OnDisposing()

    This method is called automatically when Dispose() is called. Makes sure you release all resources within this call.

    Declaration
    protected override void OnDisposing()
    Overrides
    WorkerBase.OnDisposing()

    PauseAsync()

    Declaration
    public override Task<WorkerState> PauseAsync()
    Returns
    Type Description
    Task<WorkerState>
    Overrides
    WorkerBase.PauseAsync()

    ResumeAsync()

    Declaration
    public override Task<WorkerState> ResumeAsync()
    Returns
    Type Description
    Task<WorkerState>
    Overrides
    WorkerBase.ResumeAsync()

    StartAsync()

    Declaration
    public override Task<WorkerState> StartAsync()
    Returns
    Type Description
    Task<WorkerState>
    Overrides
    WorkerBase.StartAsync()

    StopAsync()

    Declaration
    public override Task<WorkerState> StopAsync()
    Returns
    Type Description
    Task<WorkerState>
    Overrides
    WorkerBase.StopAsync()

    Implements

    IWorker
    System.IDisposable

    See Also

    IWorker

    Comments

    Back to top Copyright © 2017-2019 Unosquare