Class BackgroundTaskScheduler
An implementation of TaskScheduler that uses an Evergine background thread to execute tasks.
Namespace: Evergine.Framework.Threading
Assembly: Evergine.Framework.dll
Syntax
public class BackgroundTaskScheduler : TaskScheduler
Properties
Background
Gets the instance of BackgroundTaskScheduler.
Declaration
public static BackgroundTaskScheduler Background { get; }
Property Value
Type | Description |
---|---|
BackgroundTaskScheduler |
Methods
Configure(Container)
Configures the ForegroundTaskScheduler and starts the background thread.
Declaration
public void Configure(Container container)
Parameters
Type | Name | Description |
---|---|---|
Container | container | The application container that has registered the Evergine services. |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | The scheduler can be configured only once. |
GetScheduledTasks()
Generates an enumerable of Task instances currently queued to the scheduler, waiting to be executed.
Declaration
protected override IEnumerable<Task> GetScheduledTasks()
Returns
Type | Description |
---|---|
IEnumerable<Task> | An enumerable that allows traversal of tasks currently queued to this scheduler. |
Overrides
Exceptions
Type | Condition |
---|---|
NotSupportedException | This scheduler is unable to generate a list of queued tasks at this time. |
QueueTask(Task)
Queues a Task to the scheduler.
Declaration
protected override void QueueTask(Task task)
Parameters
Type | Name | Description |
---|---|---|
Task | task | The Task to be queued. |
Overrides
TryExecuteTaskInline(Task, bool)
Determines whether the provided Task can be executed synchronously in this call, and if it can, executes it.
Declaration
protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued)
Parameters
Type | Name | Description |
---|---|---|
Task | task | The Task to be executed. |
bool | taskWasPreviouslyQueued | A Boolean denoting whether or not the task has previously been queued. If this parameter is True, then the task may have been previously queued (scheduled); if False, then the task is known not to have been queued, and this call is being made in order to execute the task inline without queuing it. |
Returns
Type | Description |
---|---|
bool | A Boolean value indicating whether the task was executed inline. |