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
'...处理其实事务
'用到委托来更新PrgsBar
ShowProgress(i)
next
end sub
End Class