Schedule()関数を使うと、指定した秒数後にスクリプトを実行できます。
Schedule( 15, Print( "こんにちは" ) );
図8.6 JMPスケジューラ
quickieScript = Expr(
Show( "やあ、どうも" );
Schedule( 15, quickieScript );
);
quickieScript;
このスクリプトは、15秒後にログウィンドウに文字列「やあ、どうも」を表示し、そのさらに15秒後に同じスクリプトが実行されるように再スケジュールします。これは[停止]ボタンがクリックされるまで続きます。
FifteenMinuteCheck = Expr(
Show( "データのチェック" );
Open( "my file", options... );
distribution( Column( column1 ), capability( spec limits ) );
Schedule( 15 * 60, FifteenMinuteCheck );
);
FifteenMinuteCheck;
Schedule()はイベントキューを開始します。イベントがキューに置かれると、スクリプト内の次のステートメントの実行に移ります。たとえば、次の例のような結果になることもあります。
Schedule( 3, Print( "いち" ) );
Print( "に" );
イベントが終了するまで、それ以降のスクリプトが実行されないように待機させる方法の1つに、Wait( )を使って適当な停止時間を設定する方法があります。別の方法としては、以降の処理をスケジュールのキューに入れます。Schedule()では、たくさんのイベントを連続的にキューに入れられるようになっています。複数のイベントをスケジュールに設定した場合、各イベントは、個別に呼び出されます。各イベントの実行時間はすべて、「今」から(または、[実行]がクリックされてから)の時間で指定してください。たとえば、以下の複数のイベントは、12秒間ではなく5秒間ですべて終了します。
Schedule( 3, Print( "こんにちは" ) );
Schedule( 4, Print( "、世界のみなさん" ) );
Schedule( 5, Print( "--さようなら" ) );
スケジュールキュー上のイベントをすべてキャンセルするには Clear Scheduleを使います。
scheduler[1] << Clear Schedule( );
メモ: Scheduleを使ってマルチスレッドで動作させることはできません。
n秒後に指定のスクリプト(script)を実行するというイベントをキューに入れる。
|
||
sc<<Clear Schedule()
|