使用 Visual Basic .NET 的多執行緒程式開發

http://www.microsoft.com/taiwan/msdn/library/2002/Apr-2002/whitepaper/vbtchAsyncProcVB.htm

建立新的執行緒

建立執行緒最直接的方法就是建立執行緒類別的一個新執行個體,並且使用 AddressOf 陳述式傳遞您要執行之程序的委派。例如,下列程式碼會將名為 SomeTask 的子程序當成另一個執行緒執行。

Dim Thread1 As New System.Threading.Thread(AddressOf SomeTask)

Thread1.Start

' 此處的程式碼會立即執行。


執行緒共用


執行緒共用是多執行緒的一種形式,工作會加入佇列中,並在建立執行緒時自動啟動。使用執行緒共用時,您要呼叫 Threadpool.QueueUserWorkItem 方法,使用您要執行之程序的委派,Visual Basic .NET 會建立執行緒並執行您的程序。以下範例顯示可以如何使用執行緒共用啟動許多工作。

Sub DoWork()

Dim TPool As System.Threading.ThreadPool

' 佇列工作

TPool.QueueUserWorkItem(New System.Threading.WaitCallback _

(AddressOf SomeLongTask))

' 佇列另一個工作

TPool.QueueUserWorkItem(New System.Threading.WaitCallback _

(AddressOf AnotherLongTask))

End Sub



有一點要釐清的:Join 是一個同步或封鎖呼叫。您呼叫了 Join 或等候處理常式的等候方法後,呼叫程序會停止,等候執行緒通知其已經完成。


Sub JoinThreads()

Dim Thread1 As New System.Threading.Thread(AddressOf SomeTask)

Thread1.Start()

Thread1.Join() ' 等候執行緒完成。

MsgBox("執行緒已經完成")

End Sub