# Task Scheduler

Task Scheduler is a Designer Component which is automatically generated by configuration wizard. This component maintains a list of task names and the corresponding system paths.

Task Scheduler is responsible for passing all the relevant data to a task and execute it. It is also responsible for gathering the results generated by the tasks.

Task Scheduler implements a set of methods. These methods allow the execution of tasks in at least three different ways:

- Synchronously

  When a task is executed synchronously, the task scheduler method which executes the task does not return until the task has finished execution. Typically the task executes in the same thread as the one that initiated the execution.

- Asynchronously

  When a task is executed asynchronously, the task scheduler starts the execution of the task in a different thread and returns. The scheduler does not wait for the execution of the task to complete.

- Sequentially

  When a task scheduler runs sequentially, it runs more than one task.

After the requested task or tasks finish running, Task Scheduler's callback function AcknowledgeTaskResults will be triggered, wherein CommandHandlerCallback script will be called. The callback is called even if the task execution was unsuccessful.