Process state
Process state ( process ) : Integer
Parameter | Type | Description | |
---|---|---|---|
process | Integer | → | Process number |
Function result | Integer | ← | State of the process |
This command is not thread-safe, it cannot be used in preemptive code.
Description
The Process state command returns the state of the process whose number you pass in process.
The function result can be one of the values provided by the following predefined constants:
Constant | Type | Value | Comment |
---|---|---|---|
Does not exist | Integer | -100 | |
Aborted | Integer | -1 | |
Executing | Integer | 0 | |
Delayed | Integer | 1 | |
Waiting for user event | Integer | 2 | |
Waiting for input output | Integer | 3 | |
Waiting for internal flag | Integer | 4 | |
Paused | Integer | 5 | |
_o_Hidden modal dialog | Integer | 6 | Compatibility: This process state no longer exists starting with 4D v16. An equivalent status is returned by the Process info command when procState=Waiting for user event and procMode=False. |
If the process does not exist (which means you did not pass a number in the range 1 to Count tasks), Process state returns Does not exist (-100).
Example
The following example puts the name and process reference number for each process into the asProcName and aiProcNum arrays. The method checks to see if the process has been aborted. In this case, the process name and number are not added to the arrays:
$vlNbTasks:=Count tasks
ARRAY TEXT(asProcName;$vlNbTasks)
ARRAY INTEGER(aiProcNum;$vlNbTasks)
$vlActualCount:=0
For($vlProcess;1;$vlNbTasks)
If(Process state($vlProcess)>=Executing)
$vlActualCount:=$vlActualCount+1
PROCESS PROPERTIES($vlProcess;asProcName{$vlActualCount};$vlState;$vlTime)
aiProcNum{$vlActualCount}:=$vlProcess
End if
End for
// Eliminate unused extra elements
ARRAY TEXT(asProcName;$vlNbTasks)
ARRAY INTEGER(aiProcNum;$vlActualCount)