管理人は、最初に、このwaitとawaitのHELPを見たときに思ったのは、最小時間を1ミリ秒まで 細かく設定出来るのがawaitだと勘違いしていました(笑)

この二つの命令を使う場所の多くは無限ループを使用する際に使うのがほとんどです。 ゲームで有ればキャラを動かすループ、ツールで有れば動作を管理する場合等です。 では、これら二つの違いは何なんでしょう?

グラウンドを一周走ったらある時間休みまた走る・・・と考えてみましょう。
(例えですから、走る人の速度は常に一定とします) 休む時間をwaitで計るとしたら、足の速い人も遅い人も一周したらその時間必ず 休むことが出来ます。もし10周を目標とすれば早い人が間違いなく先にゴールします。
一方、awaitだとどうなるかというと、一周の時間を測定して、予定より早く 一周した場合は、残り時間を休憩に使うという風になります。 つまり、足の遅い人は休憩時間が少ないわけです。これの場合はゴールはだいたい一緒に なりますね(一周分の差だけつきますけど)。

実際には走る人というのはコンピュータになります。つまり、waitを使用した場合、 早いコンピュータと遅いコンピュータでは、処理速度が変わってしまうわけです。 10マス分キャラクターを動かそうとした場合、早いほうはすぐに終わってしまいますね。 これだと、ゲームのバランスがとれないです。それに対してawaitの場合はどちらも 同じ時間で処理を進めることが出来ます(正確には指定した一周の時間よりも遅いコンピュータの 場合には、遅くなってしまいます)。

これだけの説明だとwaitの必要性を感じません(^^;
先の例でwaitとawaitをもう一度比べると、awaitの場合、一周の時間を常に計ってないといけませんが waitは、一周したら時間を計るので、時間を計る人は、時計をあまり気にしなくていいので楽ですね。 これは、コンピュータでも言えることでawaitを使うと、コンピュータは時間を計るのに忙しくなり 他の仕事に手が回らなくなります。しかし、waitはそのときだけ時間を計ればいいので それ以外は他の仕事が出来るわけです。

くどくどと説明をしてきましたが、結局はコンピュータによって早さをなるべく変えたくない場合 (ほとんどゲームだと思いますが)には、await。
駐屯型の監視ソフトや、ただ単に入力待ちなどの部分には、waitで十分。
ということになります。上手に使い分けてみてください。
■ 目次へ戻る ■

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル