TTaskSchedulerThread

The background thread used by TTaskScheduler which handles the actual scheduling and execution of tasks

Inheritance

LevelAncestorDescription
1TObjectUltimate ancestor in a class hierarchy
2TWaitableObjectAhstract base class for an object that can be waited for using WaitFor
3TThreadAbstract base class for a single thread of execution
4TTaskSchedulerThread

Source

Task.Scheduler.Thread.pas (59)

Description

TTaskSchedulerThread uses EventQueue to synchronize all events (scheduling, completion, and so on) and thus provide thread-safety.

Fields

ScopeVisibilityTypeNameDescription
InstanceprivateTList<TTaskStatus>FStatuses
InstanceprotectedTThreadLockAddLock
InstanceprotectedTList<TScheduledTask>Tasks
InstanceprotectedTList<TScheduledTaskGroup>TaskGroups
InstanceprotectedTCollection<TRecurringTaskExecutionThread>RecurringTaskExecutors
InstanceprotectedTThreadEventTerminationEvent
InstanceprotectedTThreadTimerTimer
InstancepublicTWaitableQueue<TEvent>EventQueue
InstancepublicTThreadLockStatusLock
InstancepublicTList<TTaskThreadPool>TaskPools

Methods

ScopeVisibilityResultNameDescription
InstanceprivateSetStatuses(Value: TList<TTaskStatus>)
InstanceprotectedHandleScheduledStop()
InstanceprotectedHandleUpdateStatuses()
InstanceprotectedHandleTaskScheduled(TaskScheduled: TTaskScheduledEvent)
InstanceprotectedHandleTaskStarted(TaskStarted: TTaskStartedEvent)
InstanceprotectedHandleTaskFinished(TaskFinished: TTaskFinishedEvent)
InstanceprotectedHandleTaskGroupScheduled(TaskGroupScheduled: TTaskGroupScheduledEvent)
InstanceprotectedHandleRecurringTaskStarted(TaskStarted: TRecurringTaskStartedEvent)
InstanceprotectedHandleRecurringTaskScheduled(TaskScheduled: TRecurringTaskScheduledEvent)
InstanceprotectedUnscheduleTask(Task: TTask)
InstanceprotectedUnscheduleTaskGroup(Group: TTaskGroup)
InstanceprotectedHandleUnschedule(UnscheduleEvent: TTaskNodeUnscheduledEvent)
InstanceprotectedHandleEvent(Event: TEvent)
InstanceprotectedHandleEvents()
InstanceprotectedUpdateDependencies(Task: TTask)
InstanceprotectedUpdateTaskGroups()
InstanceprotectedQueueIfPossible(ScheduledTask: TScheduledTask)
InstanceprotectedTTaskExecutionThreadPoolGetPoolForTask(Task: TTask)
InstanceprotectedExecute()
InstancepublicCreate()
InstancepublicDestroy()
InstancepublicTerminate()