- ベストアンサー
一定の時間が経過したら、処理を止めたい
VB6で教えていただきたいことがあります。 LOOPで回して処理をしているのですが、 一定時間たったら、別の処理を動かすようにしたのですが、どのようにすればよいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
お世話になります。 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
その他の回答 (2)
s_husky です。 補足: 「ループ内に DoEvents を書く必要があるか否かは既知である」という前提です。
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 なども考えられます。 ※「ループ内で他の処理を呼ぶ必要はない」という考えです。
お礼
いろいろな方法があるんですね。 勉強になりました。ありがとうございます。
お礼
助かります。 できました。ありがとうございました。