TIMER PARA DEPOIS DO PRIMEIRO TICK!
Estou fazendo um programa que verifica a conexão à um IP na Porta 80 a cada 3 segundos.
No momento que o o timer executa a função de conexão ao host remoto, um outro timer de 5 segundos inicia (esse é o timeout, ele vai executar caso a conexão demore mais de 5 segundos para ser realizada)
O código do timer é o seguinte:
Citação:Private Sub tmWatchdogCheck_Tick() Handles tmWatchdogCheck.Tick
Dim Watchdog As New TcpClient
tmWatchdogCheck.Enabled = False
lbWatchdog.Text = [Ô]Trying [Ô] + txWatchdogHost.Text + [Ô]:[Ô] + txWatchdogPort.Text
tmWatchdogTimeout.Interval = (txWatchdogTimeout.Text * 1000)
tmWatchdogTimeout.Enabled = True
Debug.Print([Ô]Ticked![Ô])
Watchdog.BeginConnect(txWatchdogHost.Text, txWatchdogPort.Text, New AsyncCallback(AddressOf ConnProc), Watchdog)
End Sub
Private Sub tmWatchdogTimeout_Tick(sender As Object, e As EventArgs) Handles tmWatchdogTimeout.Tick
lbWatchdog.Text = [Ô]Timeout! Will [Ô] + cbWatchdogAction.Text
[ô][ô][ô]
[ô][ô][ô] EXECUTE ACTION
[ô][ô][ô]
If (cbWatchdogAction.Text = [Ô]Do Nothing[Ô]) Then
tmWatchdogCheck.Enabled = True
Else
[ô][ô][ô]
[ô][ô][ô] DO OTHER STUFF
[ô][ô][ô]
End If
End Sub
O que está causando o problema eu já sei, é aquela linha do Watchdog.BeginConnect que é uma conexão assÃncrona. Se eu tirar essa linha, tudo funciona que é uma beleza.
Mais com ela no lugar, o Timer não funciona mais, mesmo que esteja ENABLED = TRUE e nem com o método Timer.Start()
O que será? Tô perdidão!
Abraços!