Tips

タイマを使用し、指定秒数待機処理を作成して処理を一定時間待機させる方法

日付2004/05/31
ID04-004
バージョン
プラットフォームMac/Win

「DELAY PROCESS (プロセス; 遅延時間)」または、「SET TIMER」を使用します。 4Dのプロセスを一定時間ごとに動作させるには、新規のプロセスを立ちあげてそのプロセス内に遅延命令を記述するのが一般的です。 ランゲージリファレンスのプロセスコマンドの章にあります「DELAY PROCESS」コマンドをご参照下さい。

なお、これらのコマンドは、1/60秒単位での指定が可能となりますが、時計のような正確さはありませんので正確な時間での待機は、 「Current Time」などと組み合わせる必要があるでしょう。

―――――――――――――――――――――――――――――――――――
 Delay Processが一定時間プロセスを停止します。

$cp:=current process
while(semaphore("Wait"))
 delay process($cp;60*5)`5Sec wait
end while

完全に停止するにはPause processです。
別プロセスでResume Processを実行することで復帰します。
―――――――――――――――――――――――――――――――――――

[参考]
CALL PROCESSコマンドには“帰り時間”なるものは存在しません。 以下はランゲージリファレンスのCALL PROCESSコマンドの解説文からの抜粋です。

―――――――――――――――――――――――――――――――――――
呼び出し元プロセス(CALL PROCESS コマンドが実行されたプロセス)は
“待機”しません。つまり、CALL PROCESS コマンドは即座に効力を持ち
ます。必要であれば、2つのプロセス間で読み書きを行えるように
(GET PROCESS VARIABLE およびSET PROCESS VARIABLE コマンドにより)
インタープロセス変数やプロセス変数(この目的のために用意)を用いて、
呼び出し元プロセスから応答のための待機用ループを作成する必要があり
ます。
―――――――――――――――――――――――――――――――――――

*タイマー処理をすると同じ処理を何度も実行してしまうので 何度も実行しないように書いて下さい。