• ベストアンサー

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

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
質問者

お礼

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