Show / Hide Table of Contents

    Class SingleThreadTaskScheduler

    A single-threaded task scheduler that runs all of its tasks on the same thread.

    Inheritance
    Object
    TaskScheduler
    SingleThreadTaskScheduler
    Implements
    IDisposable
    Inherited Members
    TaskScheduler.TryDequeue(Task)
    TaskScheduler.FromCurrentSynchronizationContext()
    TaskScheduler.TryExecuteTask(Task)
    TaskScheduler.MaximumConcurrencyLevel
    TaskScheduler.Default
    TaskScheduler.Current
    TaskScheduler.Id
    TaskScheduler.UnobservedTaskException
    Object.ToString()
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: IPA.Utilities.Async
    Assembly: IPA.Loader.dll
    Syntax
    public class SingleThreadTaskScheduler : TaskScheduler, IDisposable

    Properties

    | Improve this Doc View Source

    IsRunning

    Gets whether or not the underlying thread has been started.

    Declaration
    public bool IsRunning { get; }
    Property Value
    Type Description
    Boolean
    Exceptions
    Type Condition
    ObjectDisposedException

    Thrown if this object has already been disposed.

    Methods

    | Improve this Doc View Source

    Dispose()

    Disposes this object. This puts the object into an unusable state.

    Declaration
    public void Dispose()
    | Improve this Doc View Source

    Dispose(Boolean)

    Disposes this object.

    Declaration
    protected virtual void Dispose(bool disposing)
    Parameters
    Type Name Description
    Boolean disposing

    whether or not to dispose managed objects

    | Improve this Doc View Source

    Exit()

    Terminates the runner thread, and waits for the currently running task to complete.

    Declaration
    public IEnumerable<Task> Exit()
    Returns
    Type Description
    IEnumerable<Task>

    an IEnumerable<T> of Tasks that did not execute

    Remarks

    After this method returns, this object has been disposed and is no longer in a valid state.

    Exceptions
    Type Condition
    ObjectDisposedException

    Thrown if this object has already been disposed.

    | Improve this Doc View Source

    GetScheduledTasks()

    Throws a NotSupportedException.

    Declaration
    protected override IEnumerable<Task> GetScheduledTasks()
    Returns
    Type Description
    IEnumerable<Task>

    nothing

    Overrides
    TaskScheduler.GetScheduledTasks()
    Exceptions
    Type Condition
    NotSupportedException

    Always.

    | Improve this Doc View Source

    Join()

    Waits for the runner thread to complete all tasks in the queue, then exits.

    Declaration
    public void Join()
    Remarks

    After this method returns, this object has been disposed and is no longer in a valid state.

    Exceptions
    Type Condition
    ObjectDisposedException

    Thrown if this object has already been disposed.

    | Improve this Doc View Source

    QueueTask(Task)

    Queues a given Task to this scheduler. The Task must> be scheduled for this TaskScheduler by the runtime.

    Declaration
    protected override void QueueTask(Task task)
    Parameters
    Type Name Description
    Task task

    the Task to queue

    Overrides
    TaskScheduler.QueueTask(Task)
    Exceptions
    Type Condition
    ObjectDisposedException

    Thrown if this object has already been disposed.

    | Improve this Doc View Source

    Start()

    Starts the thread that executes tasks scheduled with this TaskScheduler

    Declaration
    public void Start()
    Exceptions
    Type Condition
    ObjectDisposedException

    Thrown if this object has already been disposed.

    | Improve this Doc View Source

    TryExecuteTaskInline(Task, Boolean)

    Rejects any attempts to execute a task inline.

    Declaration
    protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued)
    Parameters
    Type Name Description
    Task task

    the task to attempt to execute

    Boolean taskWasPreviouslyQueued

    whether the task was previously queued to this scheduler

    Returns
    Type Description
    Boolean false
    Overrides
    TaskScheduler.TryExecuteTaskInline(Task, Boolean)
    Remarks

    This task scheduler always runs its tasks on the thread that it manages, therefore it doesn't make sense to run it inline.

    Exceptions
    Type Condition
    ObjectDisposedException

    Thrown if this object has already been disposed.

    Implements

    System.IDisposable

    Extension Methods

    ReflectionUtil.SetField<T, U>(T, String, U)
    ReflectionUtil.GetField<U, T>(T, String)
    ReflectionUtil.SetProperty<T, U>(T, String, U)
    ReflectionUtil.GetProperty<U, T>(T, String)
    ReflectionUtil.InvokeMethod<U, T>(T, String, Object[])
    • Improve this Doc
    • View Source
    Back to top Generated by DocFX