Class SingleThreadTaskScheduler
A single-threaded task scheduler that runs all of its tasks on the same thread.
Implements
Namespace: IPA.Utilities.Async
Assembly: IPA.Loader.dll
Syntax
public class SingleThreadTaskScheduler : TaskScheduler
Properties
| Improve this Doc View SourceIsRunning
Gets whether or not the underlying thread has been started.
Declaration
public bool IsRunning { get; }
Property Value
Type | Description |
---|---|
Boolean |
Methods
| Improve this Doc View SourceDispose()
Disposes this object. This puts the object into an unusable state.
Declaration
public void Dispose()
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 |
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 |
Remarks
After this method returns, this object has been disposed and is no longer in a valid state.
GetScheduledTasks()
Throws a
Declaration
protected override IEnumerable<Task> GetScheduledTasks()
Returns
Type | Description |
---|---|
IEnumerable<Task> | nothing |
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.
QueueTask(Task)
Queues a given
Declaration
protected override void QueueTask(Task task)
Parameters
Type | Name | Description |
---|---|---|
Task | task | the |
Start()
Starts the thread that executes tasks scheduled with this
Declaration
public void Start()
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 |
Remarks
This task scheduler always runs its tasks on the thread that it manages, therefore it doesn't make sense to run it inline.