Lua Coroutine 的简单使用

Lua Coroutine 的简单使用,第1张

概述在Unity 中习惯了使用 Coroutine,发现 Lua中也有 Coroutine 可以使用,大喜。 Lua 中的 Coroutine 有四种状态 Suspend 、 Running  、Dead、 Normal 。 下面代码解释了各个状态的时机 --------------------------get coroutine status--------------------------

在Unity 中习惯了使用 Coroutine,发现 Lua中也有 Coroutine 可以使用,大喜。


Lua 中的 Coroutine 有四种状态 Suspend 、 Running  、Dead、 normal 。


下面代码解释了各个状态的时机

--------------------------get coroutine status--------------------------local co=coroutine.create(function(  )	-- body	print("hi")end)--coroutine type is threadprint(co,type(co))--coroutine is on suspend status after create (suspend/running/dead/normal)print(coroutine.status(co))--coroutine is on running status after resumelocal bret=coroutine.resume(co)--注意resume *** 作是有返回值的!!! 这里返回trueprint(bret)--coroutine is on dead status running endprint(coroutine.status(co))--对一个 已经是dead状态的coroutine进行resume是返回false的local bret=coroutine.resume(co)print(bret)--而且直接在print中进行resume还能打印出来详细错误print(coroutine.resume(co))----------------------test yIEld----------------------print("----test yIEld----")co=coroutine.create(function (  )	-- body	for i=1,5 do		print("co",i)		--coroutine be suspend while call yIEld()		coroutine.yIEld()		print("co after yIEld",i)	endend)print(coroutine.status(co))coroutine.resume(co) --执行resume,coroutine继续执行状态running,输出1,然后yIEld 状态变为suspendedprint(coroutine.status(co))coroutine.resume(co)--执行resume,coroutine继续执行状态running,输出2,然后yIEld 状态变为suspendedprint(coroutine.status(co))coroutine.resume(co)--执行resume,coroutine继续执行状态running,输出3,然后yIEld 状态变为suspendedprint(coroutine.status(co))coroutine.resume(co)--执行resume,coroutine继续执行状态running,输出4,然后yIEld 状态变为suspendedprint(coroutine.status(co))coroutine.resume(co)--执行resume,coroutine继续执行状态running,输出5,然后yIEld 状态变为suspendedprint(coroutine.status(co))coroutine.resume(co) --for循环了5次,5次循环之后状态是suspended,					--这时候是suspended在yIEld(),所以要再一次resume,执行yIEld()后面的逻辑print(coroutine.status(co))print(coroutine.resume(co))
总结

以上是内存溢出为你收集整理的Lua Coroutine 的简单使用全部内容,希望文章能够帮你解决Lua Coroutine 的简单使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1240867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存