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 15:03:33
  • 終了:2017/09/08 16:04:26

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4655ベストアンサー獲得回数19772017/09/08 15:37:09

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません