新しく質問する

タイマーコントロールのイベント処理

役に立った:3件
  • 質問者:pansy
  • 投稿日時:2005/04/12 10:52
  • 困り度:暇なときに回答をください
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

VB6SP6を使ってます。
タイマーコントロールで一定間隔に発生させるイベントプロシージャについて以下の点を教えてください。

1.イベント処理に時間を要し、Intervalの値を超えてしまった場合は、また新たな次のイベントが発生するのでしょうか。
もし新規イベントが発生するのでしたらこれまで処理を行ったイベント処理情報は全て破棄されるのでしょうか

2.イベント処理中にEnabledプロパティがFalseとなりタイマーが停止した場合、イベント処理は最後まで完了するのでしょうか。それとも途中で中止され、途中情報は破棄されるのでしょうか

以上、よろしくお願いいたします

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:3件)
  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:taka_tetsu
  • 回答日時:2005/04/12 11:14

プログラム中で処理が終了するのは明示的に終了させるか、エラー発生による異常終了しかありえません。

また、タイマーイベントは他のイベントとともにキューに貯められますのでイベントプローシージャに記述された処理の終了後に再度イベントが発生することになります。

よって、
>1.イベント処理に時間を要し、Intervalの値を超えてしまった場合は、また新たな次のイベントが発生するのでしょうか。
イベントプロシージャ内の処理終了後に発生します。
例外として、DoEventsを呼んだ場合はキューにたまった内容を処理しますのでイベントが発生します。

>もし新規イベントが発生するのでしたらこれまで処理を行ったイベント処理情報は全て破棄されるのでしょうか

破棄は行われません。ただし、上記のようにDoEventsを呼んで再度イベントプロシージャが呼ばれた場合はそれまでの処理はスタックに詰まれます。何度も再起的に呼ばれた場合はスタック不足により異常終了となることがあります。

>2.イベント処理中にEnabledプロパティがFalseとなりタイマーが停止した場合、イベント処理は最後まで完了するのでしょうか。それとも途中で中止され、途中情報は破棄されるのでしょうか

試せばすぐにわかると思いますが、最後まで完了します。

通報する

この回答へのお礼

ありがとうございました。
タイマーコントロールは奥が深いのですね

  
このQ&Aは役に立ちましたか?(役に立った:3件)

このページのトップへ

Facebook公式ページ

公式Twitter