• ベストアンサー

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

  • VB.NET For文とTimer関数の同時処理

    こんにちは。 VB.NETでプログラミングをしていて、分からないことがあったので質問させてください。 For文である処理を繰り返して行なっている最中に、Timer関数で別の処理を並列して行うということは不可能なのでしょうか? よろしくお願い致します。

  • Timer_Tickについて

    Timerイベントについてですが、Interval = 1 に設定し、例えば下記のようなプログラムを動かした場合、 /*-------------------------------------------*/ Private Sub Form_Load(~~)~~     Timer1.Start()     Original() '自作プロシージャ End Sub Private Sub Timer1_Tick(~~)~~     num += 1 'Publicで宣言してある     if num > 100 then Timer1.Stop() End Sub /*-------------------------------------------*/ Original()の処理に移るのは、numが100より大きくなってTimer1がStopしてからでしょうか? それとも、Timer1が動いている最中に、移ってるのでしょうか?

  • Timerイベントについて

    ある処理を30秒おきに実行します。その結果が正常終了するまで繰り返します。正常終了すれば次の処理へ移ります。が、5分間正常終了しなければ次の処理に移るというロジックを考えているのですが、思いつきません。 現在、Timerコントロールを使用してます。TimerをONには出来ますが、処理が自動的に次の処理へ移ってしまう状況です。Timerイベントを走らせた後に結果が分かるまで処理を一時中断したいんです。どなたか助言をお願いします。

  • For文の終了値を関数にしても問題ないですか

    VB6です。 For文の終了値が関数になっている場合、この関数の評価はFor文を実行する最初に1回しか行われない(関数は1度しか呼ばれない)ということがVBの規約か何かどこかで明記されているでしょうか。 例) For i = 0 To Func(i) (処理) Next Function Func(i as integer) as integer Func = i + 1 End Function という風に記述した場合、(処理)が2回実行されるてループを抜けることが確認できました。これはi=0のときに関数Funcを一回だけ実行しているということです。(デバッグモードでそれを確認) これは、規定の動作なのかそれともたまたまなのでしょうか。 上記のFor文でもし毎回Funcが評価されると無限ループになってしまいます。

  • AS3のtimerとif文の組み合わせかたについて

    AS3のtimerとif文の組み合わせかたについて。 as3.0でゲーム要素が少しあるものを作ることになりました。 作りたいものは、 5秒以内にクリックされたらA(ラベル名)に飛んで5秒以上経ってからクリックしたらB(ラベル名)に飛ぶってという指示です。 ~されたらという指示なのでif文を使うことは分かるのですが、それをtimerとどう組み会わせてかけばいいのか、TimerEventの何を使えばいいのか調べてみましたが、関係しそうな情報を見つけてもどれが使えるのかわからず困っております。 何を使ってどう書けばいいのでしょうか? どなたか分かる方がいらっしゃれば教えて下さい。 よろしくお願いします。

  • PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか?

    PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか? for文やwhile文ではbreakやcontinueなどが使えるようですが、if文にはないのでしょうか? 条件分岐がいくつかあって、その一つを途中で抜けて次の条件分岐へと移行したいのですが、 exitを使ってしまうと、次へ行かずに処理が中止されてしまいますし、 どのようにすればよいのか分からず困っています。何かよい方法はないでしょうか?

    • ベストアンサー
    • PHP
  • Do文の中にタイマーを・・・

    VBは初心者ではないのですが、作っているものがとても複雑なものなので教えていただきたいと思い書き込みました。 現在製作中のプログラムにDo文をセットし、Do~Loopの間にタイマーを動かすプログラムを作りたいと思います。 普通にタイマーを起動する場合は Timer1.Enabled = True でよいと思うのですが、タイマーの中にDo文の条件になるように変数を変えていくプログラムが入っているのです。 だからといって、Call文を使うとタイマー内の処理が1回しか行われないので無理です。 なので、「○○ミリ秒後に次の行のプログラムを実行」みたいな構文はないものでしょうか? または、タイマーを起動させ、タイマーが終了したらDo文の中に戻るようなプログラムはありませんか? 難しい質問とはわかっていますがよろしくお願いします。

  • phpのfor文は関数なんですか? この動画でfo

    phpのfor文は関数なんですか? この動画でfor文の第1引数という言い方をしています 引数は関数のかっこの中の数ですよね? https://www.youtube.com/watch?v=jx3B8S-WHbU php プログラミング

    • ベストアンサー
    • PHP
  • phpのfor文は関数なんですか? この動画でfo

    phpのfor文は関数なんでしょうか? この動画でfor文の第1引数という言い方をしています 引数は関数のかっこの中の数ですよね? https://www.youtube.com/watch?v=jx3B8S-WHbU php プログラミング

    • ベストアンサー
    • PHP
  • Do whileとFor文の脱出処理について

    はじめまして。 VBについて素朴な質問なのですが For…Nextから抜けるにはExit for を使いDo…Loopから抜けるにはExit Doを使用しますが以下の場合はFor文の中でExit doを使用するのは可能なのでしょうか? Do while(条件) for i=1 to 12 if 条件 then exit do end if 処理1 next i 処理2 loop 本来ならfor文の中ではExit forを使用しますがfor文はDo while文 の中に含まれていますのでExit doでも出れると思ったのですがそうではないのでしょうか?ご回答よろしくお願いします。

専門家に質問してみよう