管理人は、最初に、このwaitとawaitのHELPを見たときに思ったのは、最小時間を1ミリ秒まで
細かく設定出来るのがawaitだと勘違いしていました(笑)
この二つの命令を使う場所の多くは無限ループを使用する際に使うのがほとんどです。
ゲームで有ればキャラを動かすループ、ツールで有れば動作を管理する場合等です。
では、これら二つの違いは何なんでしょう?
グラウンドを一周走ったらある時間休みまた走る・・・と考えてみましょう。
(例えですから、走る人の速度は常に一定とします)
休む時間をwaitで計るとしたら、足の速い人も遅い人も一周したらその時間必ず
休むことが出来ます。もし10周を目標とすれば早い人が間違いなく先にゴールします。
一方、awaitだとどうなるかというと、一周の時間を測定して、予定より早く
一周した場合は、残り時間を休憩に使うという風になります。
つまり、足の遅い人は休憩時間が少ないわけです。これの場合はゴールはだいたい一緒に
なりますね(一周分の差だけつきますけど)。
実際には走る人というのはコンピュータになります。つまり、waitを使用した場合、
早いコンピュータと遅いコンピュータでは、処理速度が変わってしまうわけです。
10マス分キャラクターを動かそうとした場合、早いほうはすぐに終わってしまいますね。
これだと、ゲームのバランスがとれないです。それに対してawaitの場合はどちらも
同じ時間で処理を進めることが出来ます(正確には指定した一周の時間よりも遅いコンピュータの
場合には、遅くなってしまいます)。
これだけの説明だとwaitの必要性を感じません(^^;
先の例でwaitとawaitをもう一度比べると、awaitの場合、一周の時間を常に計ってないといけませんが
waitは、一周したら時間を計るので、時間を計る人は、時計をあまり気にしなくていいので楽ですね。
これは、コンピュータでも言えることでawaitを使うと、コンピュータは時間を計るのに忙しくなり
他の仕事に手が回らなくなります。しかし、waitはそのときだけ時間を計ればいいので
それ以外は他の仕事が出来るわけです。
くどくどと説明をしてきましたが、結局はコンピュータによって早さをなるべく変えたくない場合
(ほとんどゲームだと思いますが)には、await。
駐屯型の監視ソフトや、ただ単に入力待ちなどの部分には、waitで十分。
ということになります。上手に使い分けてみてください。