- ベストアンサー
タイマーコントロールのイベント処理
VB6SP6を使ってます。 タイマーコントロールで一定間隔に発生させるイベントプロシージャについて以下の点を教えてください。 1.イベント処理に時間を要し、Intervalの値を超えてしまった場合は、また新たな次のイベントが発生するのでしょうか。 もし新規イベントが発生するのでしたらこれまで処理を行ったイベント処理情報は全て破棄されるのでしょうか 2.イベント処理中にEnabledプロパティがFalseとなりタイマーが停止した場合、イベント処理は最後まで完了するのでしょうか。それとも途中で中止され、途中情報は破棄されるのでしょうか 以上、よろしくお願いいたします
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
プログラム中で処理が終了するのは明示的に終了させるか、エラー発生による異常終了しかありえません。 また、タイマーイベントは他のイベントとともにキューに貯められますのでイベントプローシージャに記述された処理の終了後に再度イベントが発生することになります。 よって、 >1.イベント処理に時間を要し、Intervalの値を超えてしまった場合は、また新たな次のイベントが発生するのでしょうか。 イベントプロシージャ内の処理終了後に発生します。 例外として、DoEventsを呼んだ場合はキューにたまった内容を処理しますのでイベントが発生します。 >もし新規イベントが発生するのでしたらこれまで処理を行ったイベント処理情報は全て破棄されるのでしょうか 破棄は行われません。ただし、上記のようにDoEventsを呼んで再度イベントプロシージャが呼ばれた場合はそれまでの処理はスタックに詰まれます。何度も再起的に呼ばれた場合はスタック不足により異常終了となることがあります。 >2.イベント処理中にEnabledプロパティがFalseとなりタイマーが停止した場合、イベント処理は最後まで完了するのでしょうか。それとも途中で中止され、途中情報は破棄されるのでしょうか 試せばすぐにわかると思いますが、最後まで完了します。
お礼
ありがとうございました。 タイマーコントロールは奥が深いのですね