[VB.NET]多线程——线程参数和返回值

前面示例中的方法调用不能包含任何参数或返回值。这一限制是使用此方法创建和运行线程的主要缺点之一。然而,可以通过将在单独的线程中运行的过程包装到类或结构中,为它们提供参数,并使之能返回参数。

Class TasksClass Friend StrArg As String Friend RetVal As Boolean Sub SomeTask() ' 将 StrArg 字段用作参数。 MsgBox("StrArg 包含字符串" & StrArg) RetVal = True ' 设置返回参数的返回值。 End SubEnd Class' 要使用类,请设置存储参数的属性或字段,' 然后,根据需要异步调用方法。Sub DoWork() Dim Tasks As New TasksClass() Dim Thread1 As New System.Threading.Thread( _ AddressOf Tasks.SomeTask) Tasks.StrArg = "某个参数" ' 设置用作参数的字段。 Thread1.Start() ' 启动新线程。 Thread1.Join() ' 等待线程 1 运行结束。 ' 显示返回值。 MsgBox("线程 1 返回值" & Tasks.RetVal)End Sub手动创建和管理线程最适合需要控制细节(例如线程优先级和线程模型)的应用程序。可以想象,使用这种方法管理大量线程将是非常困难的。如果需要很多线程,可以考虑使用线程池以降低复杂程度。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...