ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
CALL WORKER
|
CALL WORKER ( process ; formula {; param}{; param2 ; ... ; paramN} ) | ||||||||
引数 | 型 | 説明 | ||||||
process | テキスト, 倍長整数 |
![]() |
プロセス番号、またはプロセス名 | |||||
formula | オブジェクト, テキスト |
![]() |
実行するプロジェクトメソッドの名前、または Formulaオブジェクト | |||||
param | 式 |
![]() |
メソッドに渡す引数 | |||||
CALL WORKER コマンドは、process に受け渡した名称または ID のワーカープロセスを作成、または呼び出して、任意の param パラメーターを使って formula 引数で指定されたコードの実行をそのコンテキスト内において要求します。
CALL WORKER コマンドは params をカプセル化し、メッセージの形でワーカーが持つメッセージボックスに受け渡します。ワーカープロセスについての詳細はワーカーについて を参照ください。
process パラメーターに指定するプロセス名またはプロセス番号により、ワーカーは特定されます:
注: ユーザーインターフェースやアプリケーションモードのためにデータベース起動時に4D によって作成されるメイン・プロセスは、CALL WORKER によってコールすることのできるワーカープロセスです。ただし、メイン・プロセスのプロセス名は 4D の言語環境により異なるため、CALL WORKER を使用する場合にはプロセス番号 (常に 1) で指定することが推奨されます。
ワーカープロセスはランタイムエクスプローラーのプロセスリストに表示されます。また、_o_PROCESS PROPERTIES コマンドはワーカープロセスも対象に実行できます。
formula 引数には、ワーカープロセスのコンテキストで実行する4D コードを指定します。以下のいずれかを指定することができます:
またformula 引数で指定したフォーミュラへの引数をparam 引数に1つ以上渡すことができます。順番引数 を使用することもできますし、フォーミュラの式が関数またはプロジェクトメソッドの場合には名前付き引数 を使用することもできます。プロセスのコンテキスト内で実行が開始されたとき、プロセスフォーミュラは引数の値を名前付きで受け取るか、 $1、 $2、 の順番に受け取ります。配列は引数としては渡せないという点に注意して下さい。それに加えてCALL WORKER コマンドのコンテキストにおいては、以下の追加の制約についても注意する必要があります:
ワーカープロセスは、アプリケーションが終了するか、あるいは KILL WORKER をコールされるまで存続します。必要ないワーカーにはこのコマンドを使い、メモリを解放するのがよいでしょう。
フォーム上に、選択年の統計などの算出をおこなうボタンを設置します。
ボタンはワーカープロセスを作成、あるいは呼び出します。演算はワーカーがおこなうため、ユーザーはフォームの操作を続行できます。
ボタンのメソッドは次のとおりです:
// ワーカー myWorker をコールし、実行メソッドと引数を指定します
var $vYear: Integer
$vYear:=2015 // この値はフォーム上でユーザーが選択したかもしれません
CALL WORKER("myWorker";Formula(workerMethod);$vYear;Current form window)
workerMethod のコードは次のとおりです:
// ワーカーが実行するメソッドです
// プリエンプティブでもコオペラティブでも可能です
#DECLARE($vYearInteger;$windowInteger) //year and window reference
... // 統計データを算出します
// 終了後、ワーカーはフォームをコールして、結果を渡します
// $vStatResults でフォーム上に結果を表示します
CALL FORM($window;Formula(displayStats);$vStatResults)
プロダクト: 4D
テーマ: プロセス (コミュニケーション)
番号:
1389
初出: 4D v15 R5
変更: 4D v16 R4
変更: 4D v19 R6
ランゲージリファレンス ( 4D v20 R7)