• ベストアンサー

Timer関数の中のFor文の処理

Timer関数とFor文の使い方について質問です。 例えばTimer関数のインターバルを1秒に設定をします。 そして、Timer関数の処理の中で5秒以上処理のかかるFor文を書いたとします。 その場合、Timerはスタートしてから1秒後にまた最初からFor文の処理を始めるのでしょうか。 それとも5秒以上処理のかかるFor文の処理が終わってから次のTimerの処理に移行するのでしょうか。 もしくは、1秒毎に新たに並列にTimerの処理がスタートして行くのでしょうか。 以上です。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Timer処理の中でMessageBoxを表示するような、テストプログラムを書けば数分で確認できる事柄だと思います。 DOTNET環境の場合だと(実際はC#で試した) Timer関数の処理が長引いて、次のTimerイベントの時間になった場合は Timerイベントの要求フラグが立てられます。 Timer関数から抜け出たときに、間髪を入れずに次のTimer関数の処理が始まります。 もしTimer関数の処理が、複数回のTimerイベントの時間以上にかかっても、 要求フラグは1つのみ立ちます。 VB6,VBAの場合なら Timer処理の最中は、Timerのカウントがストップするので、次のイベントは発生しません。 そのためTimerのインターバルは、Timer処理の時間分増えるような動作になります。

sacloclec
質問者

お礼

なるほど。私の例で言うとTimerのインターバルが5秒以上となって処理されるのですね。 ご回答ありがとうございました。

関連するQ&A