[LUA]taskMaid——多线程任务管理器(支持异步)

这是一篇介绍LUA编程中实现的多线程任务管理器,具备异步处理能力。作者作为LUA新手分享了简洁而实用的接口设计,期待社区的反馈和指导。
摘要由CSDN通过智能技术生成
--先上一个实例,再附源代码啦~

--日常使用本taskMaid的完整操作

taskMaid:onInit()    --初始化任务管理器

--小任务:数苹果

--任务失败的回调函数
local function f_callback(n_delta)
	print(n_delta)
end
--数一个苹果
local function f_task(t_cache)
	 t_cache[1]=t_cache[1]+1 
	return true                --这条任务成功完成
end
local apple={0}

--注册一个任务
local order=taskMaid:requestNewTaskOrder("calculate_the_number_of_apples",f_callback,apple,1)

--为这个任务添加若干任务函数。在任务执行时,每一帧会执行一次任务
taskMaid:pushTask(order,f_task,1,"failed to calculate the number of apple!")
taskMaid:pushTask(order,function (t_cache)
	t_cache[1]=t_cache[1]+5
	return true
end,"failed to calculate the number of apple!")
--taskMaid:pushTask...
taskMaid:pushTask(order,function (t_cache)
	chiefMaid:printLog("We have got %d apples!",t_cache[1])
end)


--开始启动这个任务
taskMaid:startTask(order)

--注意:taskMaid的任务并不是即时执行的,而是以一帧一步的方式执行的。在这一帧启动或终止任务,意为从下一帧开始执行或清理该任务。

while(tru
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值