Buongiorno, come da titolo avrei bisogno di una soluzione per il freeze causato dal ping.

Mi spiego meglio, devo controllare la connessione con un dispositivo in rete.
Ora uso questo metodo, ma non funziona correttamente:

All'interno del Timer1:

codice:
 If t_checkPing.IsAlive = False Then
            t_checkPing = New Threading.Thread(AddressOf checkPing)
            t_checkPing.Start("192.168.59.39")
        End If

E successivamente:

codice:
Dim t_checkPing As New System.Threading.Thread(AddressOf checkPing)

Sub checkPing(ipAddress As String)

            If My.Computer.Network.Ping(ipAddress, 500) = False Then


                testoMessaggioAvviso = "COMMUNICATION" & vbCrLf & "ERROR"


                Invoke(Sub()
                                   'Interazione con la GUI                          
                       End Sub)


            Else


                Invoke(Sub()
                            'Interazione con la GUI
                       End Sub)


            End If

End Sub
Finchè il dispositivo è collegato, funziona tutto, ma non appena il dispositivo viene spento o comunque la connessione non c'è più, ad ogni ciclo in cui vado ad effettuare la verifica, mi si freeza il programma per un paio di secondi.

Ho trovato nel web qualcosa riguardo il l'AsyncPing, ma non riesco a venirne fuori.
Sto provando ma mi da sempre lo stesso problema.

Qualcuno saprebbe aiutarmi?

Grazie