Мне нужна помощь при запуске функции в новом потоке при нажатии кнопки. На моем frmMain у меня есть 2 текстовых поля и кнопка. Существуют и другие элементы управления, которые работают в своих потоках, но я не могу заставить этот конкретный работать.Начать новую тему в vb.net при нажатии кнопки
Private Function IsPortOpen(ByVal Host As String, ByVal PortNumber As Integer) As Boolean
Dim Client As TcpClient = Nothing
Try
Client = New TcpClient(Host, PortNumber)
Return True
Catch ex As SocketException
Return False
Finally
If Not Client Is Nothing Then
Client.Close()
End If
End Try
End Function
Private Sub btnCheckPort_Click(sender As Object, e As EventArgs) Handles btnCheckPort.Click
Dim Port As Integer = tbPortNumber.Text
Dim Hostname As String = tbHostAddress.Text
Dim PortOpen As Boolean = IsPortOpen(Hostname, Port)
Try
If PortOpen = True Then
lblPortStatus.Text = "Port " & tbPortNumber.Text & " is Open on " & tbHostAddress.Text
Else
lblPortStatus.Text = "Port " & tbPortNumber.Text & " is Not Open on " & tbHostAddress.Text
End If
Catch ex As Exception
End Try
End Sub
Если я использую этот код в кнопку мыши подразделам:
Private Sub btnCheckPort_Click(sender As Object, e As EventArgs) Handles btnCheckPort.Click
Dim Port As Integer = tbPortNumber.Text
Dim Hostname As String = tbHostAddress.Text
Dim PortOpen As Boolean = IsPortOpen(Hostname, Port)
manualCheckThread = New Threading.Thread(AddressOf IsPortOpen)
manualCheckThread.Start()
Try
If PortOpen = True Then
lblPortStatus.Text = "Port " & tbPortNumber.Text & " is Open on " & tbHostAddress.Text
Else
lblPortStatus.Text = "Port " & tbPortNumber.Text & " is Not Open on " & tbHostAddress.Text
End If
Catch ex As Exception
End Try
End Sub
Я получаю эту ошибку: «Error BC31143 метод 'Private Function IsPortOpen (Host As String, Portnumber As Integer) As Boolean' не имеет подписи, совместимой с делегатом «Delegate Sub ThreadStart()». Camera Watchdog F: \ dontdig \ frmMain.vb 177 «
Это просто проверяет, открыт ли конкретный порт по IP-адресу, указанному в текстовое окно.