VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • vb.net教程之关于线程的参数和返回值的问题

给一个过程建立一个新的线程是一个简单的问题,但是还是有一些重要的问题需要强调一下,例如当运行一个新的线程的时候,用AddressOf操作运行的方法或过程并没有注释和参数,而且不能返回值,为了解决这个问题,下面有几种比较简单的方法,可以给线程设定一些参数,并且从一些独立的线程的过程中返回值。
1.为新建立的线程设置参数
因为在建立一个新的线程类的时候,只使用了一个AddressOf操作,这样就不能给一个即将要独立运行的线程设置一些具有标示性的议论。
一个给线程设置参数的方法就是使用全局变量,采用这种结构后,用户就能区别线程所使用的一些参数和注释。不过这样做,也有一些不足的地方,因为当用户在调试程序的时候,全局变量会带来困难,而且要维护代码也是一件比较困难的事,而且当使用多个独立线程中对一个过程的拷贝时,事情也将会变得很复杂。
最好的办法就是把一些需要对自由线程中的方法设置的参数设置成为一个新的线程的属性的值。这样做的优点就是每当用户新建一个新的线程对象的时候,这个对象可以有自己的属性值,也就是说,它可以具有它自己的参数。

2.从自由线程的过程中返回参数
因为当用户运行一个独立的线程的时候,在线程中只能是过程而不能是函数,也不能用ByRef来引用,所以用户必须通过一些其他的技术来从线程中得到所需要的信息到自己的程序中去。最简单的办法就是通过设置全局变量,当某个线程结束以后就给某个全局变量赋值,然而,正如上述这种方法是应该要避免的,而且如果要这样做的话,用户还必须事先先判断线程是不是已经结束了,才能去访问那些全局变量,这样的话,无疑降低了程序的效率和准确性。
从一个线程的过程中返回值的最好办法就是,把需要返回的值作为一个参数建立一个事件,通过执行这个事件,就可以得到所需要的返回值。如果事件运行以后,同时用户所需要的返回值是某个全局变量的话,可以干脆把这个事件设置为返回全局变量。当线程结束以后,主程序就可以利用那些事件返回的值进行下一步操作。


相关教程