• ベストアンサー

一定の時間が経過したら、処理を止めたい

VB6で教えていただきたいことがあります。 LOOPで回して処理をしているのですが、 一定時間たったら、別の処理を動かすようにしたのですが、どのようにすればよいでしょうか?

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

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

お世話になります。 GetTickCount を使うのはどうでしょうか。 http://homepage1.nifty.com/rucio/main/tyukyu/tyukyu1.htm Dim startTime As Long startTime = GetTickCount() 'Loop 実行前 Dim i As Integer For i = 0 To 10000   Dim nowTime As Long   nowTime = GetTickCount() '現在   If (nowTime - startTime) > 1000 Then     '別の処理 を実行   End If Next

参考URL:
http://homepage1.nifty.com/rucio/main/tyukyu/tyukyu1.htm
7_11shop
質問者

お礼

助かります。 できました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#22222
noname#22222
回答No.3

s_husky です。 補足: 「ループ内に DoEvents を書く必要があるか否かは既知である」という前提です。

全文を見る
すると、全ての回答が全文表示されます。
noname#22222
noname#22222
回答No.2

Private Sub Command1_Click()   Dim isNext As Boolean   Dim Finish As Single      Finish = Timer + 10   Do     If Timer > Finish Then       isNext = True       Exit Do     End If   Loop Until (0)   If isNext Then     MsgBox "isNext の値は真です。"   End If End Sub 次の処理へ移ることを明示する説明的なコードの書き方が無駄と言う場合は、 Private Sub Command1_Click()   Dim Finish  As Single      Finish = Timer + 10   Do     ・・・・・   Loop Until Timer > Finish   ・・・・・ End Sub なども考えられます。 ※「ループ内で他の処理を呼ぶ必要はない」という考えです。

7_11shop
質問者

お礼

いろいろな方法があるんですね。 勉強になりました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB2005 でLOOP処理を一定時間経過したら抜けさせる方法

    VB2005の初心者です。 標準モジュールで、Loop処理で一定時間経過したらLoopを抜ける処理を作りたいのですが、どうすれば良いのでしょうか。 Formではないため、System.Windows.Forms.Timerは使えません。 標準モジュールなので、System.Timers.Timer を使うのかと思ったのですが、Intervalで設定した時間が経過したことをどのように知ることができるのでしょうか。 ソースは下記のような単純なループです LtimTimer = New Timers.Timer LtimTimer.Interval = 60000 LtimTimer.AutoReset = False LtimTimer.Enabled = True Do If '設定時間が経過' Then Exit Do End If 反復処理 Loop '設定時間が経過' 部分に、どのように書けば良いのでしょうか。 何かヒントになるようなことでも良いので、 皆様の知恵をお借りできれば幸いです。 よろしくお願い致します。

  • 一定時間が経過したら処理を行う.

    一定時間が経過したら、ある処理を行いたいです。 if(一定時間が経過したら){  // 処理 } 例えばこのプログラムを実行してから1日たったら というようにしようと考えています. どのような条件をつければよいでしょうか?

  • PHPで一定時間が経過すると処理が発生、は可能?

    ■質問1 ・PHPで、一定時間が経過すると処理が発生みたいなことはできるでしょうか? ■質問2 ・PHPで、指定時刻になったら処理が発生みたいなことはできるでしょうか?

    • ベストアンサー
    • PHP
  • 一定時間まちたい

    setInterval() とか setTimeout は関数を指定したりしないといけないですが、 ただ単に、一定時間、処理を中断して、 一定時間後、処理を再開するには どうすればいいですか そういう命令ありますか?

  • VB2010で時間のかかる処理をする場合

    vb2010で開発しています。 時間のかかる処理をするのに、プログレスバーやアニメーションgifを使って 処理をしていることをユーザ側に知らせたいのですが、うまくいきません。 BackgroundWorkerという機能を使うというのはネットで調べたのでが、 それはLOOP等で繰り返し行う処理の場合はできそうなのですが、 今回はSQLSERVERに対して、DELETEやUPDATEを実行したいのです。 SQLを発行するのは一回なのですが、データ量が多いために時間がかかります。 それをうまく処理できる方法はありませんか?

  • 一定時間経過した後に動作させる

    cgiを表示させてから任意の一定時間が経過した後に、処理を実行させたいのですが、Perlでそのような事は可能でしょうか? 例えば以下のような感じです。 ページを表示させてから1分経過した後に if($xx =~ $zz){処理} を実行。

    • ベストアンサー
    • Perl
  • 一定時間経過したExcelの強制終了方法を教えてください

    一定時間経過したExcelの強制終了方法を教えてください ExcelBookがAutoopenになっていて、マクロが起動します。 マクロが起動してから一定時間が経過したら、マクロでそのBookを強制終了したいのですが(保存等一切しなくてよいです)・・・ マクロは現行のまま処理(画面入力や検索する物です)を継続しつつ、 一定時間のカウントを行いたいのです。 時間経過後にマクロの処理中であっても強制終了させたいのです。 何方か、ご教授ねがいませんかm(_ _)m よろしくお願いいたします。

  • ディスプレイが一定時間経過すると消える

    会社のディスプレイについてです。 一定時間経過するとディスプレイが消えてしまいます。 消えるといっても電源は入っています。 キーボードを触っても、マウスを動かしても復帰しません。 ディスプレイの電源を入れ直すと戻ります。 PCで省電力等は設定していません。 (スクリーンセイバーのみです。) 宜しくお願いします。

  • Windows7:一定時間経過するとフリーズします

    Windows7:一定時間が経過すると暗転してフリーズします。 何かご存知の方がいらっしゃいましたら教えて頂けると 助かります。 スペック 機種:DELL XPS-8300 OS:Windows7 HomePremium 64bit CPU:Corei7-2600 3.40GHz マザーボード:H67 メモリ:16GB グラフィックボード:RaedonHD5870 試してみた処置 PCのスリープ時間とディスプレイの電電offの時間の解除 GPUのドライバの更新 マザーボードのBIOSの更新 セキュリティーソフト(ノートン)のアンインストール 上記の処理を症状を確認しながら段階的に試してみましたが 全く同じ症状が起こり、改善されませんでした。 そこでPCのスリープ時間を極端に短く設定(1分)して みたところ普通にスリープ状態になり、解除の通常通りでした。 (現在、このスリープ状態で一定時間経過するとどういう状態に なるかテストを行っているとこです。)

  • 一定周期ごとのバッチ処理

    お世話になっております。 一定時間ごとにバッチ処理を行うために、どういった方法をとるのが、PCの負荷低減によいでしょうか。 1.Windowsのタスクを利用する 2.何らかのAPIを利用する 3.プログラムでのループ処理 3のループ処理は負荷が高いので論外。 2のAPIですが、何かいいAPIあるでしょうか? 1が一番楽かと思えるのですが。 処理のタイミングは 1.毎時1回(1日24回) 2.毎日1回(1日1回) 3.年2回(年末、年始各1回) です。 稼動するPCは、24H稼動です。 稼働環境は、Win2k PRO SP3 開発環境は、Win2k PRO SP3+VB6.0SP5 以上、よろしくお願いします。