易语言 多线程,等待所有线程执行完毕后操作
原创
©著作权归作者所有:来自51CTO博客作者mp624183768的原创作品,请联系作者获取转载授权,否则将追究法律责任
用处:
当你请求网络,想吧网络请求的结果放到一个全局数组中,然后最后一块处理数组
线程调用案列:
.版本 2
.支持库 EThread
.支持库 spec
.程序集 窗口程序集1
.子程序 _按钮1_被单击
.局部变量 handle, 整数型
启动线程 (&Thread, , handle)
关闭线程句柄 (handle)
.子程序 Thread
.局部变量 i, 整数型
.局部变量 handle, 整数型, , "0"
重定义数组 (handle, 假, 10)
.计次循环首 (10, i)
启动线程 (&Login, i, handle [i])
.计次循环尾 ()
.计次循环首 (10, i)
等待线程 (handle [i], -1)
.计次循环尾 ()
信息框 (“所有线程执行完毕。”, 0, )
.子程序 Login
.参数 参数, 整数型
.局部变量 i, 整数型
调试输出 (“线程编号” + 到文本 (参数) + “进入”)
.计次循环首 (10, i)
延迟 (200)
.计次循环尾 ()
调试输出 (“线程编号” + 到文本 (参数) + “退出”)
思路
用到了两次线程
核心代码 login。子线程 用到了参数 i 这个是必须传递了
这里是延迟了 延迟 (200) 10次 也就是2s
实际上可以模拟网络请求。然后把请求结果放到一个数组中
第一次 取名子程序 Thread
、是调用login 处理完毕 等待 login 得线程处理结束
在这个线程里面
务必调用方法就是等待处理完毕后的操作
实际代码可以是对数组的操作
第二次就是把第一次的操作封装到里面
启动线程的时候 忽略参数2 带着参数3 传递一个0 即可
最后关闭
我本来以为第二次线程这步并不重要。。直到尝试的时候。才发现这步必不可少。。。