任务模块
函数:task.add() 添加任务队列
函数说明 : 将一个函数添加至任务队列。
函数方法 : task.add(任务函数 func);
返回值 : 任务 ID
参数 | 类型 | 说明 |
---|---|---|
func | function | 自定义函数 |
返回值 | 类型 | 说明 |
---|---|---|
ID | thread | 任务ID |
函数:task.loop() 执行任务队列
函数说明 : 执行任务队列。
函数方法 : task.loop(主任务ID);
参数 | 类型 | 说明 |
---|---|---|
ID | thread | 主任务ID |
函数:task.yield() 切换任务
函数说明 : 切换任务。
函数方法 : task.yield();
函数:task.sleep() 延时并切换任务
函数说明 : 与task.yield()功能相同,并带延迟功能,可代替sys.sleep()来达到每次延迟的时候切换任务
函数方法 : task.sleep(时间 ms);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
ms | number | 脚本暂停执行的时间,单位为毫秒 |
教程:使用方法
-- 主任务
function task_main()
for i = 1, 5 do
sys.log("main")
task.sleep(1000)
sys.log("main2")
end
end
-- 任务1
function task_1()
while true do
sys.log("task 1")
task.sleep(1000)
end
end
-- 任务2
function task_2()
sys.log("task 2")
end
function main()
main = task.add(task_main)
task.add(task_1)
task.add(task_2)
-- main任务结束即为结束
task.loop(main)
sys.log("主任务结束")
end
执行结果:
main
task 1 --task_main中遇到第一个task.sleep会切换到task_1
task 2 --task_1中遇到第一个task.sleep会切换到task_2
main2 --task_2执行完毕会回到task_main(由于task_2执行完毕以后不会出现task_2)
main
task 1
main2
main
task 1
main2
main
task 1
main2
main
task 1
main2
主任务结束
task_main相当于main主函数,这里写业务的主流程
task_1,task_2可用于检测程序是否闪退,检测弹出窗口等操作
注:以上用到的函数名可自定义任意名字,队列执行顺序按照task.add的添加顺序执行