メインコンテンツまでスキップ
バージョン: 開発中

PROCESS PROPERTIES

PROCESS PROPERTIES ( process ; procName ; procState ; procTime {; procMode {; uniqueID {; origin}}} )

引数説明
process倍長整数🡒プロセス番号
procName文字🡘プロセス名
procState倍長整数🡘プロセスの状態
procTime倍長整数🡘プロセスの稼働時間 (Tick)
procModeブール, 倍長整数🡘TRUE: 表示, FALSE: 非表示
uniqueID倍長整数🡘ユニークなプロセス番号
origin倍長整数🡘プロセスの発生源

説明

PROCESS PROPERTIESコマンドはprocessに渡したプロセス番号を持つプロセスに関する様々な情報を返します。

注: プロセスが存在しない場合、つまりprocess 引数に1からCount tasksまでの番号を渡さなかった場合、PROCESS PROPERTIES は変数パラメータの変更を行いません。

このコマンド呼出し後に:

  • procName変数はプロセスの名前を返します。プロセス名で注意すべき点は、次のとおりです:

    • プロセスがメソッド実行ダイアログボックスから (新規プロセスオプションを選択した状態で) 起動された場合、プロセスの名前は“P_”で始まりその後に数字が続きます。
    • プロセス開始プロパティが選択されたカスタムメニューから起動されたプロセスの場合には、プロセスの名前は“M_”または“ML_”で始まり、その後に数字が続きます。
    • Webサーバーによりプロセスが開始されれた場合、名前は"Web Process#"+UUIDです。
    • プロセスがアボートしていた場合(そして、そのスロットがまだ再使用されていない場合)、プロセスの名前はそのまま返されます。プロセスがアボートしたかどうかを検出するには、procState=-1を判定します(下記の表を参照)。
  • procState変数は、呼び出しを行った時点のプロセスの状態を返します。この引数は次の定義済定数で提供される値のいずれか1つを返します:
    | 定数 | 型 | 値 |
    | ------------------------- | ---- | ----- |
    | 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 |

  • p rocTime変数は、プロセスが起動されてからの稼働時間をtick数 (1/60秒) で返します。

  • 任意のprocMode 引数はブール型あるいは倍長整数型の変数になります:

    • ブール型の場合、プロセスが表示状態の場合にはTrueを、非表示の場合にはFalseを返します。
    • 倍長整数型の場合、メソッド実行後にビットフィールドを含み、最初の二桁は以下のように設定されます:
      * bit 0は表示プロパティを返します。プロセスが表示状態であれば1、非表示状態であれば0に設定されています。
      * bit 1 はプリエンプティブモードプロパティを返します。プロセスがプリエンプティブモードで実行されていれば1に、コオペラティブモードで実行されていれば0を返します。
      詳細な情報については、プリエンプティブ4Dプロセス の章を参照してください。
  • uniqueIDが 指定された場合には、独自のプロセス番号を返します。各プロセスはプロセス番号と、セッション内でユニークなプロセス番号を持っています。ユニークプロセ ス番号は、2つのプロセス間または2つのプロセスセッションの間で区別することができるようにするものです。これは4Dセッションの間に開始されたプロセ ス番号に対応するものです。

  • origin 引数が指定された場合には、プロセスの発生元を表わす値を返します。4Dは下記の定数を定義しています("Process Type" テーマ内):
定数コメント
Apple event manager倍長整数-7
Backup process倍長整数-19
Cache manager倍長整数-4
Client manager process倍長整数-31
Compiler process倍長整数-29
Created from execution dialog倍長整数3
Created from menu command倍長整数2
Design process倍長整数-2
Event manager倍長整数-8
Execute on client process倍長整数-14
Execute on server process倍長整数1
External task倍長整数-9
HTTP Log flusher倍長整数-58
Indexing process倍長整数-5
Internal 4D server process倍長整数-18
Internal timer process倍長整数-25
Log file process倍長整数-20
Main 4D process倍長整数-39
Main process倍長整数-1
Method editor macro process倍長整数-17
Monitor process倍長整数-26
MSC process倍長整数-22
None倍長整数0
On exit process倍長整数-16
Other 4D process倍長整数-10
Other user process倍長整数4
Restore Process倍長整数-21
Serial Port Manager倍長整数-6
Server interface process倍長整数-15
SOAP process倍長整数-33
SQL Method execution process倍長整数-24
Web process on 4D remote倍長整数-12
Web process with no context倍長整数-3
Web server process倍長整数-13
Web server spare process倍長整数-32
Worker process倍長整数5ユーザーによってローンチされたワーカープロセス

注: 4Dの内部プロセスは負の値を返し、ユーザが作成したプロセスは正の値を返します。

例題 1

次の例は、変数vName, vState, vTimeSpentに現在のプロセスのプロセス名、プロセスステータス、プロセス時間を返します:

 var vName : Text // Initialize the variables
 var vState : Integer
 var vTime : Integer
 PROCESS PROPERTIES(Current process;vName;vState;vTimeSpent)

例題 2

Semaphoreの例題参照

例題 3

カレントプロセスの表示状態と実行モードを調べたい場合を考えます。以下のようの書く事ができます:

 var vName : Text
 var vState : Integer
 var vTime : Integer
 var vFlags : Integer
 var isVisible : Boolean
 var isPreemptive : Boolean
 PROCESS PROPERTIES(Current process;vName;vState;vTime;vFlags)
 isVisible:=vFlags?? 0 //表示状態であればtrue
 isPreemptive:=vFlags?? 1 //プリエンプティブモードであればtrue

参照

Count tasks
Get process activity
Process state
プリエンプティブ4Dプロセス