梦迪丶 发表于 2019-12-21 11:42

易语言请教:多线程,计次循环,依次取超级列表框内

目的:通过多线程,依次取超级列表框内容后组合网址,post。
遇到的问题:启动多线程后,取到的列表框内容不会依次向下取。
感谢大神们的帮忙,谢谢。

.版本 2
.支持库 EThread
.支持库 iext
.支持库 internet
.支持库 spec

.子程序 _按钮2_被单击
.局部变量 ip, 文本型
.局部变量 阅读返回, 文本型
.局部变量 z
.局部变量 i4, 整数型

.计次循环首 (2, i4)
    启动线程 (&子程序1, i4, )
.计次循环尾 ()

.子程序 子程序1
.局部变量 i, 整数型
.局部变量 ip, 文本型
.局部变量 阅读返回, 文本型
.局部变量 j, 整数型

阅读时间 = 到整数 (编辑框2.内容) × 2
.计次循环首 (超级列表框1.取表项数 () - 1, i)
    处理事件 ()
    ip = 到文本 (HTTP读文件 (编辑框1.内容))
    调试输出 (ip)
    延迟 (5000)
    .计次循环首 (阅读时间, j)
      阅读返回 = 到文本 (编码_Utf8到Ansi (网页_访问_对象 (“http://www.52pojie.cn, 0, , , , #cl1 + #换行符 + #cl2 + #换行符 + #cl3 + #换行符 + #cl4 + #换行符 + #cl5 + #换行符 + #cl6 + #换行符 + #cl7 + #换行符 + #cl8 + #换行符 + 超级列表框1.取标题 (i, 3) + #换行符 + 超级列表框1.取标题 (i, 2) + #换行符 + #cl11 + #换行符 + #cl12 + #换行符 + #cl13, , , , , ip, , , , , )))
      调试输出 (阅读返回)
      调试输出 (超级列表框1.取标题 (i, 3))
      延迟 (31000)
    .计次循环尾 ()
.计次循环尾 ()

ゞ洣蔵→ 发表于 2019-12-21 12:57

你的子程序1 里并没有用到 i4 这个参数啊。   不知道你传下去是干嘛
子程序1计次循环 一条线程就执行完列表框里的项目了,也用不到 多线程。

还有 延迟() 这个命令。不要使用在循环里。有点问题。 好像会比想象中的拖延更长时间。 换成延时(或其他模块的超级延时)会好一点。

l101 发表于 2019-12-21 13:51

为什么要循环启动线程?(′・_・`)

l101 发表于 2019-12-21 13:55

本帖最后由 l101 于 2019-12-21 13:57 编辑

.版本 2
.支持库 iext

            .如果 (当前 = 超级列表框1.取表项数 ())

                N轮 = 真

                超级列表框1.现行选中项 = 0
            .否则
                超级列表框1.现行选中项 = 超级列表框1.现行选中项 + 1
            .如果结束


可以循环或者时钟,线程等里面使用,超级列表框自动向下选择,我这是循环
超级列表框还要设置一下始终显示选择项,还有整行选择都为真

梦迪丶 发表于 2019-12-21 14:12

感谢您,您这个比我那个好很多。我误打误撞解决了,我把第一个计次循环去掉了,就好了。

梦迪丶 发表于 2019-12-21 14:14

ゞ洣蔵→ 发表于 2019-12-21 12:57
你的子程序1 里并没有用到 i4 这个参数啊。   不知道你传下去是干嘛
子程序1计次循环 一条线程就执行 ...

因为这个列表框里面会有好多条数据,每执行一条数据要执行10次(30秒一次),所以才想用多线程。您说的这个延迟()的问题,我去查查资料,以后改掉这个毛病。
页: [1]
查看完整版本: 易语言请教:多线程,计次循环,依次取超级列表框内