16,722
社区成员




Imports System.Net
Imports System.Threading
Public Class FrmLanPC
'定义一个委托
Delegate Sub ShowProgressDelegate(ByVal newPos As Integer)
'委托的一个方法
Private Sub ShowProgress(ByVal newPos As Integer)
' 判断是否在线程中访问
If Not Me.InvokeRequired Then
' 不是的话直接操作控件
Me.progressBarSearch.Value = newPos
Else
' 是的话启用delegate访问
Dim showProgressDl As New ShowProgressDelegate(AddressOf ShowProgress)
' 如使用Invoke会等到函数调用结束,而BeginInvoke不会等待直接往后走
Me.BeginInvoke(showProgressDl, New Object() {newPos})
End If
End Sub
Private Sub FrmLanPC_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim th As Thread = New Thread(AddressOf InitLanHost)
th.IsBackground = False
th.Name = "SearchLanPC"
th.Start()
End Sub
private sub InitLanHost()
for i =0 as Integer to 100
'...处理其实事务
'用到委托来更新progressBar
ShowProgress(i)
next
end sub
End Class