MessageBox.showメソッドを実行するとMessageBoxが表示されます。そしてボタンをクリックしないと次の処理がおこなわれません。だから以下のコードを実行してもMessageBoxが一気に10個表示されることはありません。

ところがTimerを使う場合は違ってきます。以下のコードを実行すると0.1秒おきにMessageBoxが表示され続けます。しかも操作を受け付けるのは最後に表示されたMessageBoxだけなので、ミスに気づいたとしてもFormを閉じることができません。ゲームをつくる場合、デバッグ目的でMessageBoxを表示させる場合は注意しないと死ぬことになります。

上記のコードは無限に表示され続けると収拾がつかなくなるので10回で終わりにしていますが、以下のコードでは10個以上のMessageBoxが表示されます。理由はボタンをクリックしないと次の処理がおこなわれず、TickCountがインクリメントされないからです。実際には次々と表示されるMessageBoxを10回消すとTickCountが10になるので一応ストップさせることができます。

以下のコードは0.1秒ごとにTickCountの値をタイトルバーに表示させるプログラムです。ボタンをクリックするとMessageBoxが表示されます。[OK]をクリックしてMessageBoxを消さないと他の処理ができないのですが、表示させているあいだもタイトルバーの数字は増加しつづけます。