开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 201|回复: 10
收起左侧

[已解决] 像各位大佬 求一个逻辑

 关闭 [复制链接]
结帖率:82% (67/82)
发表于 15 小时前 | 显示全部楼层 |阅读模式   安徽省六安市
10精币
逻辑是这样的
我需要完成 20个任务,每个任务都是独立的
当我点击按钮1  这20个任务 依次去做,做了以后,有刷新时间,每个刷新的时间都不一,

在我完成这20个任务后,利用时钟判断 其中某个任务刷新时间已经到了,再去完成,
例如:依次做任务
1.任务后,刷新时间 = 1600秒
2.任务后,刷新时间 = 600秒
3.任务后,刷新时间 = 1200秒
4.任务后,刷新时间 = 1300秒
.....
17.任务后,刷新时间 = 1700秒
18.任务后,刷新时间 = 900秒
19.任务后,刷新时间 = 1400秒
20.任务后,刷新时间 = 1500秒

当然 600秒是最快结束的,结束以后,
在去做个 2号任务,2号结束后,根据时间18号任务又结束了,接着做18号任务.

求个思路,是用程序集或其他思路 把 1 2 3 4 .... 19.20 号任务 每个都做成处理事件,还是别的思路,这里面每个任务做法也都不一样


最佳答案

查看完整内容

[e=0].版本 2 .支持库 spec .程序集 程序集1 .程序集变量 执行任务名称, 文本型 .程序集变量 当前执行任务id, 整数型 .程序集变量 任务json, zyJsonValue .子程序 _启动子程序, 整数型 任务json.创建 (, , , , ) 任务json.置文本 (“[0].name”, “任务0”) 任务json.置整数 (“[0].delay”, 26) 任务json.置文本 (“[1].name”, “任务1”) 任务json.置整数 (“[1].delay”, 18) 任务json.置文本 (“[2].name”, “任务2”) 任 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

签到天数: 2 天

发表于 15 小时前 | 显示全部楼层   四川省南充市
  
窗口程序集名保 留  保 留备 注
程序集1   
变量名类 型数组备 注
执行任务名称文本型  
当前执行任务id整数型  
任务jsonzyJsonValue  

子程序名返回值类型公开备 注
_启动子程序整数型 
任务json.创建 (, , , , )
任务json.置文本 (“[0].name”, “任务0”)
任务json.置整数 (“[0].delay”, 26)
任务json.置文本 (“[1].name”, “任务1”)
任务json.置整数 (“[1].delay”, 18)
任务json.置文本 (“[2].name”, “任务2”)
任务json.置整数 (“[2].delay”, 6)
任务json.置文本 (“[3].name”, “任务3”)
任务json.置整数 (“[3].delay”, 13)
判断循环首 ()
任务判断 ()
执行任务 ()
延时 (1000)
判断循环尾 ()
返回 (0)
子程序名返回值类型公开备 注
任务判断  
变量名类 型静态数组备 注
i整数型 
最小时间长整数型 
当前时间长整数型 
执行任务名称 = “任务0”
最小时间 = 到整数 (时间_取现行时间戳 ())
计次循环首 (任务json.取成员数 (), i)
当前时间 = 任务json.取整数 (“[”到文本 (i - 1)“].startTime”)
如果真 (最小时间 > 当前时间)
最小时间 = 当前时间
执行任务名称 = 任务json.取文本 (“[”到文本 (i - 1)“].name”)
当前执行任务id = i - 1

计次循环尾 ()
' 判断任务是否开始   -1为未开始
如果真 (最小时间 ≥ 到整数 (时间_取现行时间戳 ()))
当前执行任务id = -1

子程序名返回值类型公开备 注
执行任务  
如果真 (当前执行任务id ≠ -1)  ' 判断有无任务
' 执行任务
调试输出 (执行任务名称)
' 当前任务完成
任务json.置整数 (“[”到文本 (当前执行任务id)“]startTime”, 任务json.取整数 (“[”到文本 (当前执行任务id)“].delay”)到整数 (时间_取现行时间戳 ()))


i支持库列表   支持库注释   
spec特殊功能支持库

回复

使用道具 举报

结帖率:82% (67/82)

签到天数: 3 天

 楼主| 发表于 15 小时前 | 显示全部楼层   安徽省六安市
我自己有个非常愚蠢的思路,我准备把每个任务都 做到 每个按钮事件上,然后哪个到时候了  就单击哪个按钮,哈哈哈
回复

使用道具 举报

签到天数: 5 天

发表于 15 小时前 | 显示全部楼层   广东省阳江市
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
s整数型  
任务时间整数型0 

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
任务时间 = { 1600, 600, 1200, 1300, 1700, 900, 1400, 1500 }  ' 初始任务的刷新时间,每个排序任务刷新时间放到数组
时钟1.时钟周期 = 1000  ' 设置时钟1秒运行一次
子程序名返回值类型公开备 注
_时钟1_周期事件  
变量名类 型静态数组备 注
i整数型 
如果真 (s > 1700)  ' 设置一个最大刷新时间,对应任务最大时间值,当时钟运行到最大值后初始重新计时
s = 0
s = s + 1
计次循环首 (取数组成员数 (), i)
如果真 (任务时间 [i] = s)
执行任务 (i)
跳出循环 ()

计次循环尾 ()
子程序名返回值类型公开备 注
执行任务  
参数名类 型参考可空数组备 注
任务序号整数型对应刷新时间组的顺序
判断 (任务序号 = 1)
' 执行 1.任务
判断 (任务序号 = 2)
' 执行 2.任务
判断 (任务序号 = 3)
' 执行 3.任务
判断 (任务序号 = 4)
' 执行 4.任务
判断 (任务序号 = 5)
' 执行 5.任务
判断 (任务序号 = 6)
' 执行 6.任务
判断 (任务序号 = 7)
' 执行 7.任务
判断 (任务序号 = 8)
' 执行 8.任务
' 以此类推




补充内容 (2025-5-5 04:44):
取数组成员数 () 忘记加入数组了,应改为:
计次循环首 (取数组成员数 (任务时间), i)

补充内容 (2025-5-5 04:47):
你也可以设置一个按钮事件来执行 __启动窗口_创建完毕 子程序里的代码,当按钮按下更改 按钮标题,用标题来判断 是否开启或停止

补充内容 (2025-5-5 04:49):
按钮事件中设置时钟周期时间就能停止或开启,时钟1.时钟周期 = 0 即停止,时钟1.时钟周期 = 1000 即开启。
回复

使用道具 举报

结帖率:93% (80/86)

签到天数: 5 天

发表于 12 小时前 | 显示全部楼层   浙江省温州市
写一个全局变量就行了.
当变量等于0进入比如最短的任务,完成以后变量等于1
当变量等于1进入比如第二短的任务,完成以后变量等于2
.......................类推
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 5 天

发表于 11 小时前 | 显示全部楼层   贵州省毕节市
可以同时执行就多线程 不能同时就加入队列
回复

使用道具 举报

结帖率:100% (20/20)

签到天数: 5 天

发表于 10 小时前 | 显示全部楼层   浙江省杭州市
用一个结构体 记录每个任务的刷新时间 和 上次执行时间
然后用一个线程 来处理任务  线程判断是否已经开始处理任务  是就循环任务数量  判断每个任务上次时间+刷新时间 是否小于现行时间 是则再次做该任务 否则不处理 循环判断下一个任务
回复

使用道具 举报

结帖率:82% (67/82)

签到天数: 3 天

 楼主| 发表于 10 小时前 | 显示全部楼层   安徽省六安市
b0y 发表于 2025-5-5 09:12
用一个结构体 记录每个任务的刷新时间 和 上次执行时间
然后用一个线程 来处理任务  线程判断是否已经开始 ...

我能明白,就是技术不到家,只能用本笨办法
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 4 天

发表于 8 小时前 | 显示全部楼层   安徽省合肥市
我新手  不知道行不行=。=


.版本 2

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

时钟1.时钟周期 = 1000
a = 1700
b = 600


.子程序 _时钟1_周期事件

s = s + 1000
.如果真 (取整 (s ÷ a) = s ÷ a)
    ' 执行a
.如果真结束
.如果真 (取整 (s ÷ b) = s ÷ b)
    ' 执行b
.如果真结束



回复

使用道具 举报

结帖率:82% (67/82)

签到天数: 3 天

 楼主| 发表于 8 小时前 | 显示全部楼层   安徽省六安市
wsangjunhua123 发表于 2025-5-5 11:22
我新手  不知道行不行=。=

谢谢,兄弟,这个不行的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表