VB.NET并行与分布式编程(6)-线程与内核同步[7]
我们继续扩展刚才的话题,再次使用WaitAny完成一个简单的任务,求100以内阶乘之和
?
完成这个任务我们先来解决几个问题
1、如何将线程计算结果传出来,参数可以传入,而且只能传入一个,如何传入多个参数,并输出多个参数?
1)最经典的方法是定义一个类,这个类存放了传入的参数和传出的参数
?
?以上代码有几个重点要分析一下
1)VB.NET类的属性定义
? Public Class CalculateIfno
??????? Private _threadevent As AutoResetEvent
??????? Private _result As Long
??????? Public Property threadevent As AutoResetEvent
??????????? Get
??????????????? Return _threadevent
??????????? End Get
??????????? Set(ByVal value As AutoResetEvent)
??????????????? _threadevent = value
??????????? End Set??????? End Property
??????? Public Property result As Long
??????????? Get
??????????????? Return _result
??????????? End Get
??????????? Set(ByVal value As Long)
??????????????? _result = value
??????????? End Set
??????? End Property
??? End Class??
上述类定义中
? Public Property threadevent As AutoResetEvent
??????????? Get
??????????????? Return _threadevent
??????????? End Get
??????????? Set(ByVal value As AutoResetEvent)
??????????????? _threadevent = value
??????????? End Set??????? End Property
上段代码定义了一个属性,可以理解为?
运行结果如下:
?