Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

HANG

指定された秒数だけ実行を中断します。

Synopsis

HANG:pc hangarg
H:pc hangarg

hangarg には、以下を指定できます。

hangtime,...

引数

pc オプション — 後置条件式
hangtime 待機時間 (秒)正の数値または、コンマで区切られた数式のリストに解決される式。

説明

HANG は、ルーチンの実行を指定した時間 (秒数) だけ中断します。複数の引数がある場合、Caché は提示される順序で各引数の継続時間にわたって実行を中断します。HANG の時間はシステム時計を使用して計算されます。これにより、その精度が決定されます。

HANG の最小省略形 (H) は HALT コマンドと同じです。HANG は、必須の引数 hangtime を取るため区別できます。

引数

pc

オプションの後置条件式です。Caché は、後置条件式が True (0 以外の数値に評価される) の場合に HANG コマンドを実行します。Caché は、後置条件式が False (0) の場合はコマンドを実行しません。詳細は、"Caché ObjectScript の使用法" の "コマンド後置条件式" を参照してください。

hangtime

待機時間 (秒)この時間は、数値式で表されます。hangtime は、整数秒を指定するために整数として指定したり、小数秒を指定するために小数として指定したりできます。指数 (**)、数値式、または他の数値演算子を使用することもできます。

hangtime を 0 (ゼロ) に設定すると、待機時間はありません。hangtime に負の数または非数値を指定した場合、0 に設定する場合と同じ結果となります。

以下に示すように、複数の hangtime の引数をコンマ区切りのリストで指定することもできます。

以下の例では、処理が 10 秒間中断されます。

   WRITE !,$ZTIME($PIECE($HOROLOG,",",2))
   HANG 10
   WRITE !,$ZTIME($PIECE($HOROLOG,",",2))

以下の例では、処理が 1/2 秒間中断されます。$ZTIMESTAMP$HOROLOG とは異なり、$ZTIME 関数の precision パラメータが指定されている場合は秒の小数部を返すことができます。

   WRITE !,$ZTIME($PIECE($ZTIMESTAMP,",",2),1,2)
   HANG .5
   WRITE !,$ZTIME($PIECE($ZTIMESTAMP,",",2),1,2)

以下のような値を返します。

14:34:19.75
14:34:20.25

メモ

複数の HANG 引数

hangtime を、数値式のコンマ区切りのリストとして指定することもできます。Caché は、提示される順序で各引数の継続時間にわたって実行を中断します。ここでも負の数は 0 と同様に処理されます。したがって、hangtime に 16,-15 を指定すると、待機時間は 16 秒となります。

以下の例で示すように、各 hangtime 引数が別々に実行される場合、hang 計算で現在の時刻を使用する処理に影響が及ぶ可能性があります。

  SET start=$ZHOROLOG
  SET a=$ZHOROLOG+5
  HANG 4,a-$ZHOROLOG
  SET end=$ZHOROLOG
  WRITE !,"elapsed hang=",end-start

この例では、HANG はまず 4 秒間実行を中断します。それから、2 つ目の hang 引数が解析されるときに、待機前の現在の時刻に 5 秒追加してから現在の時刻を差し引いた時間にわたって実行を中断します。HANG は各引数を順番に実行するため、この例では合計待機時間は (約) 5 秒となります。その他の場合に予期される (約) 9 秒ではありません。

HANG と時間指定された READ との比較

HANG を使用して、ユーザが出力メッセージを読む間、ルーチンを停止させることができます。しかし、時間指定された READ コマンドを使用すると、このタイプの一時停止をより効果的に扱うことができます。時間指定された READ を使用すると、ユーザは準備ができた時点ですぐに処理を続行できます。しかし、HANG はあらかじめ待機時間が設定されているため、これは不可能です。

HANG および ^JOBEXAM

HANG コマンドは、現在のプロセスの実行を一時停止するのに使用します。

^JOBEXAM ユーティリティは、その他の実行中のプロセスの実行を中断したり、再開したりするのに使用できます。現在のプロセスの実行を中断するのには使用できません。^JOBEXAM を使用して、HANG コマンドによって一時停止されたプロセスの実行を再開することはできません。^JOBEXAM を使用して、HANG コマンドによって一時停止されたプロセスを中断した場合、^JOBEXAM の再開により、中断時に残っていた HANG 時間の部分を完了する必要があるプロセスがアクティブになります。

^JOBEXAM は、すべての実行中のプロセスに関する状態情報を表示します。HANG コマンドによって一時停止されているプロセスは、HANGW 状態として表示されます。^JOBEXAM によって中断されているプロセスは、SUSPW 状態として表示されます。

^JOBEXAM ユーティリティは、%SYS ネームスペースからターミナルで呼び出す必要があります。このユーティリティを呼び出すには、適切な特権を持っている必要があります。ユーティリティ名では、大文字と小文字が区別されます。以下のようにして ^JOBEXAM を実行できます。

  • DO ^JOBEXAM : すべての実行中のプロセスのリストを表示します。実行中のプロセスを終了、中断、または再開する文字コード・オプションが用意されています。

  • DO View^JOBEXAM : すべての実行中のプロセスのリストを表示します。プロセスを終了、中断、および再開するオプションはありません。

関連項目

FeedbackOpens in a new tab