线程子程序能有返回值吗?
答案:5 悬赏:20 手机版
解决时间 2021-03-22 17:28
- 提问者网友:凉末
- 2021-03-21 16:53
启动线程()的 子程序指针型: 要启动的子程序 。这个子程序能不能有返回值?如果有,怎么在 启动线程 后取到这个返回值?
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-03-21 17:59
听别人说是先取得线程句柄后等待线程执行完毕 然后用句柄取返回值 最后关闭句柄
全部回答
- 1楼网友:猎心人
- 2021-03-21 23:04
不能有,真的很不好意思啊。
- 2楼网友:痴妹与他
- 2021-03-21 21:52
开发一个商业版软件,用到网络通讯支持库,由客户机发送请求到服务器,然后客户端等待服务器返回数据,接收到返回的数据后,子程序返回数据,代码大概如下:
返回的数据是全局变量,由异步套接字1接收到数据后赋值
.子程序_数据交互_
异步套接字1.发送数据(“113.118.25.139”,3308,到字节集(“获取连接句柄”))
判断循环首(返回的数据={})
处理事件()
判断循环尾()
收到数据=返回的数据
返回的数据={}
返回(到文本(收到数据))
问题:
1、如果我在按钮被单击的子程序中调用 “数据交互_”这个子程序,将会得到正确的返回值,但是我如果创建一个线程,在线程中调用“数据交互_”这个子程序则返回值通常都是空的,貌似不会等待子程序返回数据,当然,如果是调用的支持库自带的子程序则没有这个问题,这问题是我代码的原因还是易语言本身的原因呢?怎么解决?
2、我用的易语言版本是5.3,刚开始写的时候是在win7 64bit中写的,没发现问题,结果在win xp sp2中发现在调试过程中正常,编译出来后运行就提示内存错误,反复验证后发现程序到一个子窗口的子程序对主窗口赋值的时候就会报错。
.版本 2
.子程序 __启动窗口_创建完毕
载入 (登陆窗口, _启动窗口, 假)
.版本 2
.子程序 _超级按钮1_被单击, , , 这个是登录窗口的子程序
.版本 2
.支持库 dp1
.支持库 iext
.支持库 ethread
.如果真 (网络_取记录集行数 (记录集句柄) ≠ 0)
已登陆 = 真
门店 = 组合框1.内容
用户名 = 组合框2.内容
写配置项 (取运行目录 () + “\qjpz.ini”, “dlpz”, “md”, 组合框1.内容)
写配置项 (取运行目录 () + “\qjpz.ini”, “dlpz”, “name”, 组合框2.内容)
写配置项 (取运行目录 () + “\qjpz.ini”, “dlpz”, “id”, 到文本 (加密数据 (到字节集 (编辑框1.内容), “admin123”, 2)))
网络_释放记录集 (记录集句柄)
_启动窗口.透明标签12.标题 = “收银员:” + 用户名
_启动窗口.透明标签24.标题 = “门 店:” + 门店
_启动窗口.透明标签25.标题 = “”
可视 = 假
刷新数据库 ()
_启动窗口.禁止 = 假
_启动窗口.编辑框1.获取焦点 ()
_启动窗口.时钟5.时钟周期 = 5000
启动线程 (&重新尝试连接到服务器, , )
销毁 ()
- 3楼网友:神也偏爱
- 2021-03-21 20:14
难道只能是变量进行线程同步吗?易语言一点没有改进?精益模块也没有?
- 4楼网友:毛毛
- 2021-03-21 19:15
你是不是想写成这样 然后再用 取文件名() 来调用那个子程序?.版本 2.子程序 取文件名, 文本型, , 此函数用来去除文件名中的路径。.参数 路径文件名, 文本型返回 (取文本右边 (路径文件名, 取文本长度 (路径文件名) - 倒找文本 (路径文件名, “\”, , 假)))
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯