Rich UI ジョブ・スケジューラーは、指定したミリ秒の経過後に、 カスタマイズした関数を呼び出すことができるタイマーです。複数のジョブを スケジュールに入れることができ、実行時の状態に応じてそれらを取り消すことが できます。
import com.ibm.egl.rui.widgets.Button;
import egl.javascript.Job;
handler MyHandler type RUIhandler { initialUI = [stopButton],
onConstructionFunction = initialization }
stopButton Button{text="Stop!", onclick ::= pleaseStop};
doThis Job{runFunction = myRunFunction};
function initialization()
doThis.repeat(1000);
end
function myRunFunction()
sysLib.writeStdOut(currentTime());
end
function pleaseStop(e event in)
doThis.cancel();
end
end
import egl.javascript.Job;
Widget 型で有効な Ctrl-Shift-O メカニズムを使用してステートメントを 追加することはできません。
タイマーは、 実行関数が開始されるたびにリセットされます。最初の呼び出しを含む実行関数の各呼び出しの規則は、次のとおりです。つまり、呼び出しが行われるもっとも早い時期は、タイマーが経過するか、現行関数が 終了するかのいずれか後のほうです。
実行関数の呼び出しにより、別の関数の実行が中断されることはありません。 例えば、ジョブがスケジュールに入れられている時間と実行関数が呼び出される時間 の間の時間がある場合に、ユーザーがボタンをクリックしてイベント・ハンドラーを スケジュールに入れる可能性があります。 この場合、ジョブ関数の呼び出しは、少なくともイベント・ハンドラーが独自の下位関数 (ある場合) を呼び出して終了されるまで待機されます。
JOB 型の複数の変数を作成でき、この方法で、複数のジョブをスケジュールに入れる ことができ、さらに同じ実行関数を呼び出すこともできます。いずれの場合も、 特定の時刻に実行される関数は 1 つのみであり、その関数が完了まで実行されます。
同じ変数を使用してジョブのスケジュールを変更した場合は、その変数の前回の使用が 取り消されます。