Thread執行緒啟動方法,一般來說要么是一個無引數的方法,要么是一個帶有object引數的方法并且在Start時傳遞引數的值,
但是我們可以利用一些技巧給方法傳遞不受限制的引數,這些方法又可以在實際使用程序相互融合,
方法簡單直接上代碼,供君參考,
Imports System.Threading
Module Module1
Sub Main()
'第一種:在Start中傳遞引數值,但方法中的引數型別需為object型別
Dim t1 As New Thread(AddressOf CountNumber)
t1.Start(10)
'第二種:通過Lambda運算式創建執行緒,可以傳遞任意的引數
Dim t2 As New Thread(Sub()
PrintNumber(20)
End Sub)
t2.Start()
'第三種:通過實體化類來傳遞引數,然后呼叫類方法
Dim c As New Count(10)
Dim t3 As New Thread(AddressOf c.CountNumber)
t3.Start()
'第四種:通過傳遞類或結構,以達到向方法傳遞多個引數
Dim p As New Person() With {
.FirstName = "嚴",
.LastName = "查散"
}
Dim t4 As New Thread(AddressOf ShowName)
t4.Start(p)
Console.Read()
End Sub
'傳遞單個引數
Private Sub CountNumber(number As Object)
Dim sum As Integer
For i As Integer = 1 To Integer.Parse(number)
sum += i
Next
Console.WriteLine(sum)
End Sub
'傳遞非object引數
Private Sub PrintNumber(number As Integer)
Console.WriteLine(number)
End Sub
'把方法包裝成類,在實體化時傳遞引數
Class Count
Dim number As Integer
Sub New(number As Integer)
Me.number = number
End Sub
Public Sub CountNumber()
Dim sum As Integer
For i As Integer = 1 To Integer.Parse(number)
sum += i
Next
Console.WriteLine(sum)
End Sub
End Class
'傳遞一個類或結構達到傳遞多個引數
Private Sub ShowName(person As Object)
Dim myPerson As Person = CType(person, Person)
Console.WriteLine(myPerson.FirstName & myPerson.LastName)
End Sub
Class Person
Public Property FirstName As String
Public Property LastName As String
End Class
End Module
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/209521.html
標籤:.NET技术
