调用系统的Sleep函数,不消耗CPU,但是Windows系统中没有内置这个命令(或者使用Cygwin),推荐在Linux系统中使用该方法.
function Sleep(n)
os.execute("sleep " .. n)
虽然Windows没有内置Sleep命令,但是利用ping命令的性质.
function Sleep(n)
if n > 0 then os.execute("ping -n " .. tonumber(n + 1) .. " localhost > NUL") end
使用socket库中select函数,可以传递0.1给n,使得休眠的时间精度达到毫秒级别.
require("socket")
function Sleep(n)
socket.select(nil, nil, n)
Lua中没有内置的Sleep函数,有4种方法可以实现Sleep函数功能,如下:方法1 在一个死循环中设置一个跳出条件,但是这样的做法会占用大量CPU资源,强烈不推荐使用.function Sleep(n) local t0 = os.clock() while os.clock() - t0 <= n do endend方法2 调用系统的Sleep函数...
想在lua中写一个Unity协程效果的函数,延时N秒触发。无奈lua中没有提供封装好的函数调用。
最开始的思路是利用lua的协程,在thread中调用sleep之类的方法,之前做安卓开发的时候就用类似的思路实现的。
结果百度了一圈,网上有四种方法实现sleep的效果。
4种方法转载自 https://blog.csdn.net/charlie_2010/article/details/671...
A common need is to pause (sleep) a program for a certain number of seconds, preferably without busy waiting.
这几天在做一个小项目,其中用到了一些基本的API, 例如sleep,获取当前目录等等,lua标准库中没有提供这些接口,虽然所第三方库中也都有实现,但是要用的就那么几个函数,在一个嵌入式系统中安装那么多第三方库有点浪费资源,于是@胜利哥 写了一个socket的C实现,然后给我用。我试着把其他几个函数也用C实现,首先看下怎么用C写lua的拓展。
首先是根据Lua C语言的协议写好调用模块,
Lua原生不支持sleep功能,在Linux可以按如下实现:
function sleep(n)
os.execute("sleep " .. n)
sleep(5)
print("Hello World!")