○一呼吸入れる(ちょっとだけおやすみをさせる)

コンピュータは単純なことを非常に早く繰り返すことはとても得意。よってFor文を始めとした繰り返しはよくつかわれる。

例えば、「○For文を利用した簡単な計算の例題」では次々と足していかれた様子を表示させていたが、とても早くて人間では確認ができない。

このような時、コンピュータにわざとちょっとだけお休みをさせることにより、人間に見えるようにすることができる。

空のFor文による方法と、Sleepを使った方法の2種類を紹介する。

・空のFor文

For i = 0 to 500000
Next i

このプログラムは繰り返す処理部分(ブロック)が全くないが、コンピュータが実際にこれを実行する場合、実はちょっと時間がかかる。

実質何もしなくても、カウンタ変数iが増えながら何もしないことを50万回も繰り返して処理するためである。

よって、

PictureBox1.Image = PictureBox2.Image
For i = 0 To 500000
Next i
PictureBox1.Image = PictureBox3.Image

というプログラムは、Picture1にPicture2の絵を表示した後、ちょっと(本当にホンのわずか)待って、PictureBox3の絵を表示することになる。

マシンの性能によっては、これだと早く切り替わり過ぎたり、遅かったりするので、50万回の繰り返し数を適当に変更してみましょう。

●「○For文を利用した簡単な計算の例題」で試してみよう!

 

・Sleep命令

空のFor文の問題点は、回数の調整が難しいことである。また使用する(プログラムを動かす)コンピュータの性能によって左右されてします。

そこで、Sleep()という命令を使う方法を紹介する。

まず、Sleepは、「Sleep(100)」というように、括弧の中に数値を指定する。この数値はミリ秒で、指定した時間だけお休みをしてくれる。先の例では100m秒お休みをするということである。

このSleepはいわゆるコンピュータに指定の時間、何もするな!と命令しているわけで、フリーズ、ハングアップを強制的に一定の時間行わせているので、大きな数字を入れないよう気を付けよう。

さて、実際のSleep()命令の使い方は少しだけ面倒というか長くて、以下のようにする。

System.Threading.Thread.Sleep(100)

なお、これが長過ぎて面倒な場合は、プログラムの先頭(Public Class Form1よりも前)に、
Imports System Threading
としておけば、実際に使う時には、
Thread.Sleep(100)
と書くことができる。

よって、上記空のFor文での例は、

PictureBox1.Image = PictureBox2.Image
System.Threading.Thread.Sleep(100)
PictureBox1.Image = PictureBox3.Image

というように書くことができる。

●「○For文を利用した簡単な計算の例題」で試してみよう!


[「C班」プログラミング基礎のTopに戻る]