TIMER PARA DEPOIS DO PRIMEIRO TICK!

JOINTEK 21/02/2014 20:36:44
#435126
Galera,

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!
Faça seu login para responder