-
vb.net教程之关于线程的参数和返回值的问题
关于线程的参数和返回值的问题
给一个过程建立一个新的线程是一个简单的问题,但是还是有一些重要的问题需要强调一下,例如当运行一个新的线程的时候,用AddressOf操作运行的方法或过程并没有注释和参数,而且不能返回值,为了解决这个问题,下面有几种比较简单的方法,可以给线程设定一些参数,并且从一些独立的线程的过程中返回值。
1.为新建立的线程设置参数
因为在建立一个新的线程类的时候,只使用了一个AddressOf操作,这样就不能给一个即将要独立运行的线程设置一些具有标示性的议论。
一个给线程设置参数的方法就是使用全局变量,采用这种结构后,用户就能区别线程所使用的一些参数和注释。不过这样做,也有一些不足的地方,因为当用户在调试程序的时候,全局变量会带来困难,而且要维护代码也是一件比较困难的事,而且当使用多个独立线程中对一个过程的拷贝时,事情也将会变得很复杂。
最好的办法就是把一些需要对自由线程中的方法设置的参数设置成为一个新的线程的属性的值。这样做的优点就是每当用户新建一个新的线程对象的时候,这个对象可以有自己的属性值,也就是说,它可以具有它自己的参数。
2.从自由线程的过程中返回参数
因为当用户运行一个独立的线程的时候,在线程中只能是过程而不能是函数,也不能用ByRef来引用,所以用户必须通过一些其他的技术来从线程中得到所需要的信息到自己的程序中去。最简单的办法就是通过设置全局变量,当某个线程结束以后就给某个全局变量赋值,然而,正如上述这种方法是应该要避免的,而且如果要这样做的话,用户还必须事先先判断线程是不是已经结束了,才能去访问那些全局变量,这样的话,无疑降低了程序的效率和准确性。
从一个线程的过程中返回值的最好办法就是,把需要返回的值作为一个参数建立一个事件,通过执行这个事件,就可以得到所需要的返回值。如果事件运行以后,同时用户所需要的返回值是某个全局变量的话,可以干脆把这个事件设置为返回全局变量。当线程结束以后,主程序就可以利用那些事件返回的值进行下一步操作。
给一个过程建立一个新的线程是一个简单的问题,但是还是有一些重要的问题需要强调一下,例如当运行一个新的线程的时候,用AddressOf操作运行的方法或过程并没有注释和参数,而且不能返回值,为了解决这个问题,下面有几种比较简单的方法,可以给线程设定一些参数,并且从一些独立的线程的过程中返回值。
1.为新建立的线程设置参数
因为在建立一个新的线程类的时候,只使用了一个AddressOf操作,这样就不能给一个即将要独立运行的线程设置一些具有标示性的议论。
一个给线程设置参数的方法就是使用全局变量,采用这种结构后,用户就能区别线程所使用的一些参数和注释。不过这样做,也有一些不足的地方,因为当用户在调试程序的时候,全局变量会带来困难,而且要维护代码也是一件比较困难的事,而且当使用多个独立线程中对一个过程的拷贝时,事情也将会变得很复杂。
最好的办法就是把一些需要对自由线程中的方法设置的参数设置成为一个新的线程的属性的值。这样做的优点就是每当用户新建一个新的线程对象的时候,这个对象可以有自己的属性值,也就是说,它可以具有它自己的参数。
2.从自由线程的过程中返回参数
因为当用户运行一个独立的线程的时候,在线程中只能是过程而不能是函数,也不能用ByRef来引用,所以用户必须通过一些其他的技术来从线程中得到所需要的信息到自己的程序中去。最简单的办法就是通过设置全局变量,当某个线程结束以后就给某个全局变量赋值,然而,正如上述这种方法是应该要避免的,而且如果要这样做的话,用户还必须事先先判断线程是不是已经结束了,才能去访问那些全局变量,这样的话,无疑降低了程序的效率和准确性。
从一个线程的过程中返回值的最好办法就是,把需要返回的值作为一个参数建立一个事件,通过执行这个事件,就可以得到所需要的返回值。如果事件运行以后,同时用户所需要的返回值是某个全局变量的话,可以干脆把这个事件设置为返回全局变量。当线程结束以后,主程序就可以利用那些事件返回的值进行下一步操作。
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比