FreeBASIC マニュアルのトップに戻る

FreeBASIC Sleep

目次→その他→その他の予約語SLEEP←オリジナル・サイト

SLEEP 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

指定された時間が経過するか、またはキーが押されるまで、待ちます。

構文:
declare sub Sleep ( byval amount as long = -1 )
declare function Sleep ( byval amount as long , byval keyflag as long ) as long

用法:
Sleep [ amount [, keyflag ]]
result = Sleep ( amount, keyflag )

パラメタ:
amount
待つ、ミリ秒の任意の数。(数値を入れないと、キー入力があるまで待ちます。)
keyflag
任意の旗。 無指定 または 0 だと、起されたら起きる通常の睡眠で、amount の途中でもキー入力があれば待ちを中断します。
1 だと、深い睡眠で、キー入力しても、待ちを中断せず、眠りから覚めません。

戻り値:
keyflag が、失敗を示す有効な値でない(すなわち 01 以外の何か)ならば、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 パラメータ値を使うと、Sleepamount 値 '0' を除き、対応する待ち時間 (常に長い待ち時間、およびこれらの値のオーダーの値) を生成できなくなります。

ユーザ入力を待つ場合や、スレッドの中を繰り返すときは、25msか、それ以下で Sleep を呼んで、タイムスライスを解放してください。これは、プログラムが不必要に CPU をむさぼるのを防ぐでしょう。

Sleep はキーボード入力バッファを消去しません。Sleep 中に押されたキー情報は保持され、後で InkeyGetkeyInput で読み取ることができます。
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


方言差:
QBからの違い:
参照:
その他の予約語に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2023-05-28 02:10:05
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承