VB.net线程传递参数四种方法

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



上一篇: 彻底解决VB.NET获取网页源代码的乱码问题
下一篇: VB.NET中如何动态创建控件
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: vb.net
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2885
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑