2015-07-11 4 views
0

Итак, ребята, я новичок в VB.NET, и мне захотелось создать простую программу, которая пингов и сканирует открытые порты. Но, пинг хорошо, но сканирование порты не работают он постоянно говорит «ThreadStart не принимает параметр» и я не знаю, как это исправить .Anyways этого код части сканирования портов:ThreadStart не принимает параметр

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
    For i As Integer = Start1.Value To End1.Value 
     ' TT= temp threading 
     Control.CheckForIllegalCrossThreadCalls = False 
     Dim TT As New System.Threading.Thread(AddressOf ScanPort) 
     TT.IsBackground = True 
     TT.Start(i) 
    Next 
End Sub 

ответ

1

? ... так что пусть он принимает параметр?

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    For i As Integer = start1.Value To end1.Value 
     ' TT= temp threading 
     Control.CheckForIllegalCrossThreadCalls = False 
     Dim TT As New System.Threading.Thread(AddressOf ScanPort) 
     TT.IsBackground = True 
     TT.Start(i) 
    Next 
End Sub 

Private Sub ScanPort(ByVal portToScan As Integer) 
    Debug.Print("Scanning Port: " & portToScan) 
    System.Threading.Thread.Sleep(1000) 
End Sub 

С Option Strict On, он выглядел бы как это вместо:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    For i As Integer = CInt(start1.Value) To CInt(end1.Value) 
     ' TT= temp threading 
     Control.CheckForIllegalCrossThreadCalls = False 
     Dim TT As New System.Threading.Thread(New ParameterizedThreadStart(AddressOf ScanPort)) 
     TT.IsBackground = True 
     TT.Start(i) 
    Next 
End Sub 

Private Sub ScanPort(ByVal portToScan As Object) 
    Dim port As Integer = CType(portToScan, Integer) 
    Debug.Print("Scanning Port: " & port) 
    System.Threading.Thread.Sleep(1000) 
End Sub 
+0

Учтите, что это не может скомпилировать когда Option Strict On. – Ripple

+0

True ... вы должны изменить тип параметра на Object и ** придать ** его правильному типу внутри с использованием другой переменной. –