zzh233 发表于 2020-5-9 11:15:54

关于e4a的多线程操作

据我所知e4a的多线程操作比较困难 官方例子也就是个获取网页源码的范例 市面上也很少有多线程操作的真正方法 好像都是用时钟来代替的 我现在有个需求 要定时执行几个指令 如果用时钟 肯定会重复执行因为我不知道执行完需要多久 这个时钟周期无法定下来比如
执行1指令
延时 2000
执行2指令
执行10秒


以上的一段代码要循环执行 如果易语言就很方便的写个线程即可 但是e4a 如何利用时钟来写呢 因为时钟有时钟周期 如果代码执行到一半 时钟周期到期 又会启动新的操作 会造成错误

请教各位大神 如何用时钟来循环执行以上的代码

果果 发表于 2020-5-9 11:15:55

一个时钟,一个函数,或过程,时钟定时,执行代码前关闭时钟,代码执行完毕,在开启时钟,关键你的还是属于定时任务,如果要执行多个,并且定时,才用多线程+定时

XF谭镇洋 发表于 2020-5-9 11:25:33

啥意思?

是:
执行1指令
延时 2秒
执行2指令
延时 10秒

这个意思吗?

XF谭镇洋 发表于 2020-5-9 11:26:04

本帖最后由 XF谭镇洋 于 2020-5-9 11:33 编辑

哦哦哦,我明白了
楼主的意思是:2个命令循环执行,而且每次命令要执行完才能下一次循环,是这个意思
这样的话用时钟可能会方便点,当然也可以用方法-->方法死循环。
先弄两个时钟,然后初始周期设定最低(1毫秒)
时钟代码:
事件 时钟1.周期事件()
    命令1()
    时钟1.可用=假
结束 事件
事件 时钟2.周期事件()
    命令2()
    时钟2.可用=假
结束 事件过程代码:
过程 命令1()
    '这里写命令执行过程
    时钟1.时钟周期=1
结束 过程
过程 命令2()
    '这里写命令执行过程
    时钟2.时钟周期=1
结束 过程
试试~

yudave 发表于 2020-5-9 13:02:49

就来看看了

zzh233 发表于 2020-5-9 13:34:26

XF谭镇洋 发表于 2020-5-9 11:26
哦哦哦,我明白了
楼主的意思是:2个命令循环执行,而且每次命令要执行完才能下一次循环,是这个意思
这样 ...

万分感谢 我先感谢再看代码 捋一下 e4a的多线程太麻烦了

zzh233 发表于 2020-5-9 13:38:49

XF谭镇洋 发表于 2020-5-9 11:26
哦哦哦,我明白了
楼主的意思是:2个命令循环执行,而且每次命令要执行完才能下一次循环,是这个意思
这样 ...

请问那我又如何循环执行再用一个时钟?易语言的代码如下

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

.程序集变量 是否循环, 逻辑型

.子程序 __启动窗口_创建完毕

是否循环 = 真
启动线程 (&循环, , )


.子程序 循环

.判断循环首 (是否循环 = 真)
    写到文件 (取运行目录 () + “/dd.txt”, 到字节集 (“你好”))
    延迟 (2000)
    写到文件 (取运行目录 () + “/dd.txt”, 到字节集 (“你不好好”))
    延迟 (10000)

.判断循环尾 ()

XF谭镇洋 发表于 2020-5-9 15:15:41

zzh233 发表于 2020-5-9 13:38
请问那我又如何循环执行再用一个时钟?易语言的代码如下

.版本 2


哪有,也许你和我一样一开始也脑昏昏吧……正常。你在时钟先执行了一次命令,然后关闭时钟,在过程结束时又开启时钟,就能做到循环了。

XF谭镇洋 发表于 2020-5-9 15:17:29

zzh233 发表于 2020-5-9 13:38
请问那我又如何循环执行再用一个时钟?易语言的代码如下

.版本 2


楼主好像是想要把易语言代码翻译成E4A代码嘛?
页: [1]
查看完整版本: 关于e4a的多线程操作