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