Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vb.net中验证internet连接_Vb.net_Backgroundworker_Internet Connection - Fatal编程技术网

在vb.net中验证internet连接

在vb.net中验证internet连接,vb.net,backgroundworker,internet-connection,Vb.net,Backgroundworker,Internet Connection,我在VB.NET中编写了以下内容: Function Net() As Boolean Return My.Computer.Network.Ping("216.58.209.142") End Function Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try If Net() = True Then InternetConn

我在VB.NET中编写了以下内容:

Function Net() As Boolean
    Return My.Computer.Network.Ping("216.58.209.142")
End Function

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Try
        If Net() = True Then
            InternetConnection.ForeColor = Color.Green
            InternetConnection.Text = "OK"
        ElseIf Net() = False Then
            InternetConnection.ForeColor = Color.White
            InternetConnection.BackColor = Color.Red
            InternetConnection.Text = "KO"
        End If
    Catch ex As Exception
        InternetConnection.Text = "KO"
    End Try
End Sub

如何每分钟检查互联网连接?我尝试使用BackgroundWorker,但我不知道如何使用它,我的应用程序崩溃了。

替代方法之一是使用
Task.Delay

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    CheckConnection()
End Sub

Async Sub CheckConnection()
    Await Task.Delay(60000)
    Try
        If Net() = True Then
            InternetConnection.ForeColor = Color.Green
            InternetConnection.Text = "OK"
        ElseIf Net() = False Then
            InternetConnection.ForeColor = Color.White
            InternetConnection.BackColor = Color.Red
            InternetConnection.Text = "KO"
        End If
    Catch ex As Exception
        InternetConnection.Text = "KO"
    End Try
    CheckConnection()
End Sub

备选方案之一是使用
Task.Delay

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    CheckConnection()
End Sub

Async Sub CheckConnection()
    Await Task.Delay(60000)
    Try
        If Net() = True Then
            InternetConnection.ForeColor = Color.Green
            InternetConnection.Text = "OK"
        ElseIf Net() = False Then
            InternetConnection.ForeColor = Color.White
            InternetConnection.BackColor = Color.Red
            InternetConnection.Text = "KO"
        End If
    Catch ex As Exception
        InternetConnection.Text = "KO"
    End Try
    CheckConnection()
End Sub

可能对您更有利。我的评论不是解决您问题的方法,而是对您当前代码的改进。。你为什么要用ElseIf?用Else替换这一行,因为这样,如果没有internet连接,您可能会调用Net()函数两次。对于您的问题,为什么不使用timer?我不知道如何让timer每分钟检查一次函数。。。但我认为定时器是最简单的方法。。。可能对您更有利。我的评论不是解决您问题的方法,而是对您当前代码的改进。。你为什么要用ElseIf?用Else替换这一行,因为这样,如果没有internet连接,您可能会调用Net()函数两次。对于您的问题,为什么不使用timer?我不知道如何让timer每分钟检查一次函数。。。但我认为定时器是最简单的方法…谢谢。但任务不是声明(错误)任务是System.Threading.Tasks的成员。只导入此命名空间。作为导入System.Threading.Tasks?是-导入System.Threading.TasksFine,但现在delay不是task的成员…谢谢。但任务不是声明(错误)任务是System.Threading.Tasks的成员。只导入此命名空间。作为导入System.Threading.Tasks?是-导入System.Threading.TasksFine,但现在delay不是task的成员。。。