من هم دارم روش کار میکنم فعلا این تکه کد رو نوشتم که بتونم ایستگاههای فعال رو شناسایی کنم»
این تعریف کلاسش هست , البته خروجی رو باید بصورت یک آرایه بفرستی
PublicClass Station
PublicEvent Finish(ByVal Out AsString)
PublicSub ChkStation(ByVal SynC AsBoolean)
Dim thread AsNew System.Threading.Thread(AddressOf Process)
thread.IsBackground = Not SynC
thread.Priority = Threading.ThreadPriority.Highest
thread.Start()
EndSub
PrivateFunction Process() AsString
Control.CheckForIllegalCrossThreadCalls = False
Dim Sstring AsString = ""
For i AsInteger = 2 To 255
Dim x AsNew Net.NetworkInformation.Ping()
Dim ip AsString = "192.168.1." & Trim(Str(i))
If x.Send(ip, 0.001).Status = Net.NetworkInformation.IPStatus.Success Then
Dim b AsString = System.Net.Dns.Resolve(ip).HostName.ToString()
Sstring = b + vbCrLf + Sstring
EndIf
Next i
RaiseEvent Finish(Sstring)
Return Sstring
EndFunction
EndClass
این هم نحوه صدا زدنش
dim newStation AsNew Station
AddHandler newStation.Finish, AddressOf Test1
newStation.ChkStation(False)
و وقتی کار تموم میشه این اتفاق می افته و میتونه از لیستت استفاده کنی:
PrivateSub Test1(ByVal Out AsString)
MsgBox("finished")
TextBox1.Text = Out
EndSub