Text Language Definition
procedure BeginTask(TaskAddress:pointer);
Description
This command causes a procedure in the controller to begin executing as an independent
activity concurrent along with with other tasks and motion.
Procedures can be run as concurrent tasks if they have no parameters.
Tasks cannot be object methods. Procedures with parameters or Object Methods can be called as tasks through a wrapper without parameters that provides the parameters to
the called procedure. Insure that such a wrapped procedure has re-entrant properties (operates only with local variables, not global variables) if multiple
wrappers call the same procedure.
The MAC Family supports 64 concurrent tasks in addition to concurrent motion which does not consume task resources
Escapes
If all of the available task slots are filled an attempt to start another task will result in an Unable To Begin Task Escape Code.
If the task number is specified that is less than 1 or greater than the MaxUserTasks constant inside the interpreter package a Parameter Out Of Range Escape Code error will occur.
MaxUserTasks has a value of 16 but can be adjusted if more tasks need to be invoked from the host.
Note that only 14 additional tasks can run at one time as two are used to sustain host communication.
Examples
This example defines a procedure which causes a red light to blink indefinitely and starts the process with the BeginTask command. Without a termination condition, the task continues until it is ended with the AbortTask command.
Related Topics
Yield
Abort User Task
User Task Present
Schedule Task
TaskAddr