FreeBASIC Sleep
目次→その他→その他の予約語→SLEEP←オリジナル・サイト
指定された時間が経過するか、またはキーが押されるまで、待ちます。
構文:
用法:
Sleep [ amount [, keyflag ]]
result = Sleep ( amount, keyflag )
パラメタ:
amount
待つ、ミリ秒の任意の数。(数値を入れないと、キー入力があるまで待ちます。)
keyflag
任意の旗。
無指定 または 0 だと、起されたら起きる通常の睡眠で、amount の途中でもキー入力があれば待ちを中断します。
1 だと、深い睡眠で、キー入力しても、待ちを中断せず、眠りから覚めません。
戻り値:
keyflag が、失敗を示す有効な値でない(すなわち 0、1 以外の何か)ならば、1 を返します。そうでなければ、0 を返します。
記述:
Sleep は、与えられた
amount (どんな値でも可)のミリ秒(
-lang qb では秒。下を参考) 経過するか、またはユーザがキーを押すまで、待ちます。
amount が、100 ms 未満ならば、
Sleep は、指定された秒数まで待ちます(キー入力は無視されます)。
キーを押しても、待ちを中断させない「深い」睡眠が必要なときは、2番目のパラメタに、 1 を指定します。
Sleep の精度は OS のサイクルタイムによって変わります:
Windows NT/2K/XP: 15 ms, 9x/Me: 50 ms, Linux: 10ms, DOS: 55 ms.
また、これらの精度値よりも低い
amount パラメータ値を使うと、
Sleep は
amount 値 '0' を除き、対応する待ち時間 (常に長い待ち時間、およびこれらの値のオーダーの値) を生成できなくなります。
ユーザ入力を待つ場合や、スレッドの中を繰り返すときは、25msか、それ以下で Sleep を呼んで、タイムスライスを解放してください。これは、プログラムが不必要に CPU をむさぼるのを防ぐでしょう。
Sleep はキーボード入力バッファを消去しません。
Sleep 中に押されたキー情報は保持され、後で
Inkey か
Getkey か
Input で読み取ることができます。
Sleep にパラメータがない(キーが押されるのを待つだけの)場合、
Sleep の代わりに
Getkey キーワードを使えます。
Sleep の一般的な形式(パラメーター付き)の場合、ユーザーが
Sleep の実行中に押された最終的なキー入力からキーボード入力バッファーをクリアしたい場合は、
Sleep 命令行の後に次のような方法を使えます:
While Inkey <> "": Wend '' キーボード入力バッファが空になるまでループします
例:
Print "キーを押して下さい。"
Sleep
GetKey 'キーボード・バッファを消去します。
Print "1/2 秒、待ちます。"
Sleep 500
Dim As String s
Print "wait 3 seconds or press a key"
Sleep 3000
Print "outputed by timeout or key pressed"
While Inkey <> "" '' キーボード入力バッファが空になるまでループします
Wend
Input "enter a string"; s
Print "string entered: " & "'" & s & "'"
Sleep
方言差:
-
-lang fb と -lang fblite 方言では、amount の値の単位は、ミリ秒 です。
-
-lang qb 方言では、QB と同様に、amount の値の単位は、秒 です。
第二パラメタ keyflag を与えるか、または __Sleep としてキーワードを書くと、値は、ミリ秒 の単位になります。
QBからの違い:
-
-lang qb 方言では、違いはありません。
-
QB では、遅れ、は全体の秒だけで与えられて、keyflag パラメタはサポートされませんでした。
参照:
ページ歴史:2023-05-28 02:10:05
日本語翻訳:WATANABE Makoto、原文著作者:SysOp