4D v14

プロセス

ホーム

 
4D v14
プロセス

プロセス    


 

 

ビデオ中で説明されている操作に加え、以下の点にも留意してください。

プロセスは処理が実行される環境であり、各プロセスごとに以下の要素があります:

  • メモリ空間
  • カレントセレクション (テーブルごとにひとつ)
  • プロセス変数テーブル
  • インターフェース

プロセスとプロセスは複数の方法で通信できます:

  • インタープロセス変数
  • コマンドを使用したプロセス変数の読み書き
  • レコードやディスクファイルなど永続化したデータを利用

プロセスでは以下のことを行うこともできます:

  • 一定時間スリープさせる
  • 他のプロセスから指示があるまで一時停止させる

プロセスは、プロセス内で実行されているメソッドが終了したときに消去されます。
プログラムから強制的にプロセスをキルすることはできません。特定の条件でプロセスを終了するためには、プロセス中で実行されているメソッドを終了させるようプログラムします。 

プロセスは主に以下の目的で使用します:

  • 一括処理やバックグランドチェックなど、特別な処理を行うため
  • ツールパレットを表示する
  • 複数のウィンドウを同時に開いて作業させるため

4Dは内部的な処理のために自動でいくつかのプロセスを起動します。

プロセスは[#cmd+id="317"/]コマンドで起動します:

 vProcessNumber:=New process(Method;Stack;Processname;Settings;...)

プロセスを起動するこのコードはメソッドに記述します。以下のようなスケルトンを使用できます:

 C_TEXT($1)
 If(Count parameters=0) // 引数が渡されない場合、新規プロセス作成コードを実行
    C_LONGINT(<>ProcessNumber)
    <>ProcessNumber:=New process("Display_Stats2";1024*1024;"Statistics";"Fictitious_Parameter") // プロセスを作成
 Else // メソッドが引数を受け取っていたら、プロセス内の処理を記述したコードを実行
    C_LONGINT($Window//ウィンドウコンテナーを作成
    $Window:=Open form window("STATS";Plain form window;Horizontally centered;Vertically centered)
    DIALOG("STATS") //ダイアログを表示
    CLOSE WINDOW($Window// ダイアログが閉じられたらウィンドウも閉じる
 End if

  • 引数なしでこのメソッドを呼び出すと、4Dはプロセスを作成し、そのプロセスの中でこのメソッドを実行します。
  • そのときメソッドには引数が渡されます。
  • 最初のメソッドが終了します。 
  • プロセス内で実行されているメソッドが終了するまで、プロセスは存在します。
プロセスの実行をトレースするためには、別プロセスもトレースボタンをクリックします。すると別のデバッガーウィンドウが開いて、それぞれのプロセスごとにデバッグが可能となります。

 
 

 
プロパティ 

プロダクト: 4D
テーマ: プロセス

 
ARTICLE USAGE

セルフトレーニング ( 4D v13)
セルフトレーニング ( 4D v14)