メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Process state

Process state ( process ) : Integer

引数説明
processIntegerプロセス番号
戻り値Integerプロセスの状態

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

Process state コマンドは、processに指定したプロセス番号を持つプロセスの状態を返します。

プロセスのステータスとしては以下のような定数があらかじめ定義されています:

定数コメント
Does not exist倍長整数-100
Aborted倍長整数-1
Executing倍長整数0
Delayed倍長整数1
Waiting for user event倍長整数2
Waiting for input output倍長整数3
Waiting for internal flag倍長整数4
Paused倍長整数5
_o_Hidden modal dialog倍長整数6互換性に関する注意: このプロセス状態は4D v16 以降存在しません。Process info コマンドにprocState=Waiting for user event および procMode=False を渡すことでこれと同等のステータスが返されます。

プロセスが存在しない (つまり1からCount tasks までの番号を渡さなかった) 場合、Process state はDoes not exist (-100)を返します。

例題

以下の例は、各プロセスの名前とプロセス参照番号を配列asProcNameaiProcNumに入れます。このメソッドは、プロセスがアボートされたかを調べます。この場合、プロセス名とプロセス番号は配列に追加されません:

 $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;$vlActualCount)
 ARRAY INTEGER(aiProcNum;$vlActualCount)

参照

Count tasks
Process info