|

窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 任务队列 | 任务信息 | 待处理的任务队列 | 线程池 | 鱼刺类_线程池Ex | | 定时器ID | 整数型 | | 任务状态 | 整数型 | 任务执行状态(0=停止,1=运行中) |
线程池. 创建 (3, 10 ) 超级列表框1. 插入列 (0, "任务ID", 100, , , )超级列表框1. 插入列 (1, "参数", 100, , , )超级列表框1. 插入列 (2, "状态", 100, , , )超级列表框1. 插入列 (3, "剩余时间", 120, , , )超级列表框1. 插入列 (4, "结果", 300, , , ) 定时器ID = 置时钟间隔 (1000, &时钟事件 ) 任务状态 = 0 按钮1.标题 = "开始任务" 如果 (任务状态 = 0 )  任务状态 = 1  按钮1.标题 = "停止任务"  执行任务 ()  任务状态 = 0  按钮1.标题 = "开始任务"  变量名 | 类 型 | 静态 | 数组 | 备 注 | 任务ID | 整数型 | | | 参数 | 文本型 | | |
任务ID = 取数组成员数 (任务队列 ) + 1 参数 = 到文本 (任务ID * 111 )添加任务 (任务ID, 参数 )信息框 ("已添加任务: " & 参数, 0, )新任务.任务ID = 任务ID 新任务.请求参数 = 请求参数 新任务.开始时间 = 取现行时钟 ()新任务.超时时间 = 360 加入成员 (任务队列, 新任务 ) 超级列表框1. 插入行 (, 任务ID, , , , )超级列表框1. 置标题 (超级列表框1. 取总行数 () - 1, 1, 请求参数 )超级列表框1. 置标题 (超级列表框1. 取总行数 () - 1, 2, "等待中" )超级列表框1. 置标题 (超级列表框1. 取总行数 () - 1, 3, "6:00" )返回 (真)变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | 当前任务 | 任务信息 | | | 如果真 (取数组成员数 (任务队列 ) = 0 或 任务状态 = 0 ) 返回 () 计次循环首 (取数组成员数 (任务队列 ), i ) 当前任务 = 任务队列 [i ]  如果真 (取现行时钟 () - 当前任务.开始时间 > 当前任务.超时时间 * 1000 ) 任务超时处理 (i ) 继续 ()  线程池. 投递任务 (&处理请求, i ) 计次循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | 当前任务 | 任务信息 | | | 请求URL | 文本型 | | | 请求结果 | 文本型 | | | 开始时间 | 整数型 | | | 互斥锁_锁定 (任务队列锁 )当前任务 = 任务队列 [任务索引 ]互斥锁_解锁 (任务队列锁 ) 线程_同步 (, , , , )超级列表框1. 置标题 (任务索引 - 1, 2, "执行中" )线程_同步结束 () 开始时间 = 取现行时钟 () 请求URL = "https://api.example.com/data?param=" & 当前任务.请求参数 请求结果 = HTTP_网页访问 (请求URL, 0, , , , , , , , , ) 如果真 (取现行时钟 () - 开始时间 > 当前任务.超时时间 * 1000 ) 线程_同步 (, , , , ) 任务超时处理 (任务索引 ) 线程_同步结束 () 返回 () 线程_同步 (, , , , )超级列表框1. 置标题 (任务索引 - 1, 2, "已完成" )超级列表框1. 置标题 (任务索引 - 1, 4, 请求结果 ) 删除成员 (任务队列, 任务索引 )线程_同步结束 () 超级列表框1. 置标题 (任务索引 - 1, 2, "已超时" )超级列表框1. 置标题 (任务索引 - 1, 4, "任务执行超时,已放弃" ) 删除成员 (任务队列, 任务索引 )变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | 当前任务 | 任务信息 | | | 已用时间 | 整数型 | | | 剩余时间 | 整数型 | | | 剩余分钟 | 整数型 | | | 剩余秒数 | 文本型 | | | 计次循环首 (取数组成员数 (任务队列 ), i ) 当前任务 = 任务队列 [i ] 已用时间 = (取现行时钟 () - 当前任务.开始时间 ) / 1000  剩余时间 = 当前任务.超时时间 - 已用时间   如果真 (剩余时间 <= 0 ) 任务超时处理 (i ) 继续 ()  剩余分钟 = 剩余时间 / 60  剩余秒数 = 到文本 (剩余时间 % 60 )  如果真 (取文本长度 (剩余秒数 ) = 1 )  剩余秒数 = "0" & 剩余秒数   超级列表框1. 置标题 (i - 1, 3, 到文本 (剩余分钟 ) & ":" & 剩余秒数 ) 计次循环尾 () 如果真 (取现行时钟 () % 5000 < 1000 ) 执行任务 () 线程池. 销毁 ()时钟事件 (定时器ID )|
eAPI, eThread, eUI | (未知支持库) |
[color=rgba(0, 0, 0, 0.85)]如需实际使用,需要根据具体的 HTTP 请求需求修改处理请求[color=rgba(0, 0, 0, 0.85)]子程序中的代码,包括请求 URL、请求方式、请求头和请求参数。
|
|