VB.NET多线程编程参数的传递以及返回值的获取
来源:互联网 发布:知乎 日本东海核事故 编辑:程序博客网 时间:2024/05/21 19:49
VB.NET中多线程编程非常容易方便,只要 Dim MyThread as new system.Threading.Thread(Addressof MySub)就可以了,其中MySub是多线程中要运行的处理过程。但是如果要向线程中传递参数或者要获取线程的返回值,就不是很方便了。当然我们可以通过定义全局变量,但这会使程序的维护变得困难,增加系统开销,甚至会因线程间的并发操作导致无法预料的结果。
笔者通常采用的方法是定义一个类。在类中定义几个私有变量,用于存放参数。再定义一个带参数的构造过程,所带的参数就是我们要们要向线程中传递的参数(形参)。在构造过程中,把参数传给私有变量。再定义一个在线程中要使用的处理过程,在处理过程中就可以随意的使用私有变量来得到所需的参数。
至于返回值,可以在类中定义一个带参数的事件,在处理参数中触发事件,并把我们所需要的返回值做为参数传递出去。
在构建多线程时,先 Private WithEvents MyFirstClass as new MyClass(Arg1,Arg2....)其中Arg1,Arg2...就是我们要向线程中传递的参数(实参),然后再Dim MyThread as New System.Threading.Thread(Addressof MyFirstClass.MySub))就可以了。
在事件过程MyFirstClass_MyEvent(nReturn)中,通过nReturn就可以得到我们所要的返回值了。
代码示例:
1、类模块代码:
Public Class MyClass
dim MyArg1 as Integer
Dim MyArg2 as Integer
sub New(Byval Arg1 as Integer,Byval Arg2 as Integer)
MyArg1=Arg1
MyArg2=Arg2
End Sub
public Event MyEvent(Byval nReturn as Integer)
Public Sub MySub
Dim MyReturn as Integer=MyArg1 + MyArg2
RaiseEvent MyEvent(MyReturn)
End Sub
End Class
2、窗口模块代码:
Public Class From1
Private WithEvent MyFirstClass as New MyClass(1,3)
Private Sub MyFirstClass_MyEvent(Byval nReturn as Integer) Handles MyFirstClass.MyEvent
'nReturn中就是返回值
End Sub
本例为了抛砖引玉,只是向线程中传递两个整型参数1、3,然后在处理过程中简单将两个数相加,最后返回结果。在实际使用中当然要复杂的多。
- VB.NET多线程编程参数的传递以及返回值的获取
- VB.NET多线程编程参数的传递以及返回值的获取
- [VB.NET]多线程——参数和返回值.txt
- [VB.NET]多线程——线程参数和返回值
- JNI编程中的参数返回值的传递
- 基于VB.NET的多线程编程实现
- asp.net mvc 2.0页面带参数跳转以及获取传递的参数
- .net get post 传递参数 获取返回值
- .NET多线程 传入参数与获取返回值
- VB.NET通过deletgrate传递线程的参数
- vb.net的多线程
- 多线程的参数传递
- vb函数参数的传递
- vb函数参数的传递
- 关于VB的指针以及VB和C/C++间的参数传递
- python多线程,获取多线程的返回值
- [VB.NET]得到查询的返回值?
- 函数参数和返回值的传递
- 2010/11/12
- 扩展AS3的数据范围和精度
- 关于线程间的控件互操作
- jdk环境变量配置技巧
- PM如何整合资源——来自项目管理群的讨论
- VB.NET多线程编程参数的传递以及返回值的获取
- Jbpm 常用基础方法 相关编程接口
- mysql备份和恢复
- 更改google桌面搜索的索引文件位置
- 继承StrutsTypeConverter的类型转换器实例
- 『phphot』【SD2.0大会】刘振飞:微软Office研发成功三大法宝
- JAVA发邮件
- 自己的事情一定要做好。
- 【观点】风雨20年:我所积累的20条编程经验