在vb.net中验证internet连接
我在VB.NET中编写了以下内容:在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
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的成员。。。