VB.NETで1分間隔でSub _Check()を1回実行させたいんですが、下の記したものを実際動かしてみると1分後にSub _Check()を1回実行、2分後にSub _Check()を2回実行、3分後に3回・・

という感じでどんどん実行回数が増えていってしまいます。

ネットで以前拾ったフリーの物をいじっていて、以下のようになっているのですがどうやったら1分毎に1回だけ実行させるように変えられますか?

Sub aaa
AddHandler Timer.Tick, AddressOf Check
Timer.Interval = 60 * 1000
Timer.Enabled = True
End Sub

Sub Check()

AddHandler BackGround.DoWork, AddressOf _Check
AddHandler BackGround.RunWorkerCompleted, AddressOf Balloon_Show
If BackGround.IsBusy Then
Return
End If
BackGround.RunWorkerAsync()
End Sub

Sub _Check()
MsgBox("チェック")
End Sub

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2017/09/08 16:04:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント200pt

こう、かな。

Sub aaa
    AddHandler Timer.Tick, AddressOf Check
    Timer.Interval = 60 * 1000
    Timer.Enabled = True

    ' BackGround への登録は一回だけ
    AddHandler BackGround.DoWork, AddressOf _Check
    AddHandler BackGround.RunWorkerCompleted, AddressOf Balloon_Show
End Sub

Sub Check()
    If BackGround.IsBusy Then
        Return
    End If
    BackGround.RunWorkerAsync()
End Sub

Sub _Check()
    MsgBox("チェック")
End Sub
id:ooppeoppe

出来ました。ありがとうございました。

2017/09/08 16:04:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません