TTaskSchedulerThread
The background thread used by
TTaskScheduler
which handles the actual scheduling and execution of tasksInheritance
Level | Ancestor | Description |
---|---|---|
1 | TObject | Ultimate ancestor in a class hierarchy |
2 | TWaitableObject | Ahstract base class for an object that can be waited for using WaitFor |
3 | TThread | Abstract base class for a single thread of execution |
4 | TTaskSchedulerThread |
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
Scope | Visibility | Type | Name | Description |
---|---|---|---|---|
Instance | private | TList<TTaskStatus> | FStatuses | |
Instance | protected | TThreadLock | AddLock | |
Instance | protected | TList<TScheduledTask> | Tasks | |
Instance | protected | TList<TScheduledTaskGroup> | TaskGroups | |
Instance | protected | TCollection<TRecurringTaskExecutionThread> | RecurringTaskExecutors | |
Instance | protected | TThreadEvent | TerminationEvent | |
Instance | protected | TThreadTimer | Timer | |
Instance | public | TWaitableQueue<TEvent> | EventQueue | |
Instance | public | TThreadLock | StatusLock | |
Instance | public | TList<TTaskThreadPool> | TaskPools |
Methods
Scope | Visibility | Result | Name | Description |
---|---|---|---|---|
Instance | private | SetStatuses(Value: TList<TTaskStatus>) | ||
Instance | protected | HandleScheduledStop() | ||
Instance | protected | HandleUpdateStatuses() | ||
Instance | protected | HandleTaskScheduled(TaskScheduled: TTaskScheduledEvent) | ||
Instance | protected | HandleTaskStarted(TaskStarted: TTaskStartedEvent) | ||
Instance | protected | HandleTaskFinished(TaskFinished: TTaskFinishedEvent) | ||
Instance | protected | HandleTaskGroupScheduled(TaskGroupScheduled: TTaskGroupScheduledEvent) | ||
Instance | protected | HandleRecurringTaskStarted(TaskStarted: TRecurringTaskStartedEvent) | ||
Instance | protected | HandleRecurringTaskScheduled(TaskScheduled: TRecurringTaskScheduledEvent) | ||
Instance | protected | UnscheduleTask(Task: TTask) | ||
Instance | protected | UnscheduleTaskGroup(Group: TTaskGroup) | ||
Instance | protected | HandleUnschedule(UnscheduleEvent: TTaskNodeUnscheduledEvent) | ||
Instance | protected | HandleEvent(Event: TEvent) | ||
Instance | protected | HandleEvents() | ||
Instance | protected | UpdateDependencies(Task: TTask) | ||
Instance | protected | UpdateTaskGroups() | ||
Instance | protected | QueueIfPossible(ScheduledTask: TScheduledTask) | ||
Instance | protected | TTaskExecutionThreadPool | GetPoolForTask(Task: TTask) | |
Instance | protected | Execute() | ||
Instance | public | Create() | ||
Instance | public | Destroy() | ||
Instance | public | Terminate() |