【发布时间】:2019-08-13 00:28:02
【问题描述】:
在我的程序中,我有一个计时器,用于检查您是否已连接到互联网并检查您是否已连接到 VPN。代码比较简单
Public Function IsInternetConnected() As Boolean
If My.Computer.Network.Ping("google.com", 2000) Then
Return True
Else
Return False
End If
End Function
Public Function IsVPNConnected() As Boolean
If My.Computer.Network.Ping("10.0.2.29", 2000) Then
Return True
Else
Return False
End If
End Function
问题是每次它检查程序都会挂起几秒钟,不会让你做任何其他事情。有没有一种方法可以在不冻结应用程序的情况下不断检查它?
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If IsVPNConnected() = True Then
BtnVPN.BackColor = Color.LightGreen
BtnVPN.Text = "Connected"
Else
BtnVPN.BackColor = Color.Red
BtnVPN.Text = "Disconnected"
End If
If IsInternetConnected() = True Then
BtnInternet.BackColor = Color.LightGreen
BtnInternet.Text = "Connected"
Else
BtnInternet.BackColor = Color.Red
BtnInternet.Text = "Disconnected"
End If
End Sub
【问题讨论】:
-
计时器是 Windows 窗体计时器吗?显示计时器的代码。
-
可能是 backgroundorker 或线程的工作,具体取决于您的用途。
-
我添加了计时器的代码
-
启动后台工作程序(并暂停计时器)的计时器,当后台工作程序完成时,它会更改按钮属性(并继续计时器)。你可以调查一下。
-
你从哪里调用这个函数?
标签: vb.net