vb.net 教程 6-9 传值给线程1

本文详细介绍了如何使用线程的Start方法传递参数,并通过VB.NET代码示例展示了传递单一值及复杂类型如Dictionary的方法。

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

Thread类的Start方法可以启动线程,同时还可以传一个值给线程:

'声明 
Public Sub Start ( _
    parameter As Object _
)

所传的值是Object类型,对应调用的方法中需要增加一个Object参数。
以下代码中sample4_PrintName方法需要传入一个名字

    Sub sample4()
        Dim sample4_Thread As New Thread(AddressOf sample4_PrintName)
        sample4_Thread.Start("张三")
        sample4_Thread.Join()
        Console.Write("End")
        Console.ReadKey()
    End Sub
    Sub sample4_PrintName(ByVal pName As Object)
        Dim testName As String = CType(pName, String)
        For i As Integer = 0 To 10
            Console.WriteLine(i & ":" & testName & ",")
        Next
    End Sub

当使用Start("张三")传入后,sample4_PrintName中将传入的object数据转为String类型再使用:

由于每次只能传入一个数据,如果要传入多个数据,可以考虑使用数组、Dictionary、类、结构等等。

下面是一个传递Dictionary值给线程的例子:

    Sub sample4_1()
        Dim stu As New Dictionary(Of String, String)
        stu.Add("name", "zhangsan")
        stu.Add("age", "12")

        Dim sample4_Thread As New Thread(AddressOf sample4_1_PrintName)
        sample4_Thread.Start(stu)
        sample4_Thread.Join()
        Console.Write("End")
        Console.ReadKey()
    End Sub
    Sub sample4_1_PrintName(ByVal student As Object)
        Dim teststu As Dictionary(Of String, String) = CType(student, Dictionary(Of String, String))
        For Each kvp As KeyValuePair(Of String, String) In teststu
            Console.WriteLine(kvp.Key & ":" & kvp.Value)
        Next
    End Sub

 

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看vb.net 教程 目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Net学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值