- ベストアンサー
タイマーで動かすselect caseのタイミング
今、プログラムを勉強しているものです。 ボタンをクリックするとTimer1が指定したインターバルで動き始め、Timer_Tickにあるselect caseがループし始めるということをしています。 しかし、どうしてもタイマーを動かしてからselect caseに行くまでにインターバルが一回入ってしまうのです。これをどうにかタイマーが動いたときにすぐselect caseを動かすようにはならないのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Timer_Tickの処理をサブルーチン化して、Timer_Tickはそれを呼び出すだけにしとく。 で、Timer.startする前に、サブルーチンを1回呼び出しとくとか。
その他の回答 (1)
- kunkun_129
- ベストアンサー率64% (16/25)
回答No.2
>しかし、どうしてもタイマーを動かしてからselect caseに行くまでに >インターバルが一回入ってしまうのです。 あの?。もう少し聞きたいんだ。 タイマーを動かしてからselect caseに行くまでにの意味なんだけど、 最初タイマーインタバルをセットして次にタイマーイネーブルをTRUEにして 起動する。そうするとタイマーが起動し、指定ミリ秒後にTimer_Tickが呼び出される。 Timer_Tickの中のステートメントが順番に実行され select case の所のステートメントに ステップが進んでいくまでにインターバルが一回入るってことは?。 Timer_Tickの中の先頭のステートメントからselect case の所のステートメントまでの 処理時間が長くって、もう一回インターバルが発生して、Timer_Tick が実行されるとの 意味でいいのですか?。 この考え方でいいの?。教えて。それによって回答が・・・・・。
お礼
結果的にちゃんとできたのでご心配かけてすいませんでした。 質問を締め切るのを忘れてました。 わからなかった状況を説明しますと、 Private Sub Button1_Click・・・ Timer1.Enabled = True Timer1.Interval = 1000 Timer1.Start() end sub Private Sub Timer1_Tick・・・ select case ・ ・ end sub と書いてまして、 ボタンのend subからTimerのPrivateに行くまでにインターバル一回分が挟まって、select caseに行ってくれないなということで困ってしまって質問しました。 そしてTimer1_startの前の行にTimer1_Tickのサブルーチン化したものを入れまして、問題を解決することができました。 ほんとにご迷惑かけてすいませんでした。 ありがとうございました。