如果你是在 Linux 环境下,可以使用如下方法:
os.execute("sleep 0.1s")
如果你是在 Windows 环境下,推荐使用 w32wrappers (https://github.com/luaforge/w32wrappers)
可以使用其中的 w32.Sleep(100) 方法。
LUA里面没有pause/sleep之类的函数。
这是因为LUA是用 ANSI C实现的, ANSI C里面没有暂停,所以LUA里面也没有。
下面是一种比较消耗CPU的方法:
local clock = os.clock
function sleep(n)-- seconds
local t0 = clock()
while clock()- t0 <= n do end
end
下面是Windows底下通过调用Windows Host Script的一种方法:
function sleep(n)
local vb = "test.vbs"
local f = assert(io.open(vb,"w"))
f:write("WScript.Sleep(" .. (tonumber(n) * 1000) .. ")\n")
f:close()
os.execute(vb)
end
此外,也可以通过调用ping命令来实现这个功能:
function sleep(n)
if n > 0 then
os.execute("ping -n " .. tonumber(n+1) .. " localhost > NUL")
end
end
Lua的Socket中有这个的啊...不要用那种脑残办法暂停啊 = =
require"socket"
socket.sleep(0.1) --0.1s=100ms
这样多好啊= =
LUA没有任何停顿/睡眠功能。
这是因为Lua是在ANSI C,ANSI C实现,没有停顿,没有LUA内。
以下是CPU密集型的方法:
本地时钟= os.clock
功能休眠(N) - 秒
当地T0 =时钟() />时钟() - T0 = N年底
结束
下面的视窗
功能休眠通过调用Windows主机脚本:(N)
当地VB =“Test.vbs的”
当地F =(io.open(VB,“W”))
传真:写(“WScript.Sleep(”..(tonumber(N)* 1000 )..“)\ n”)
传真:关闭()
os.execute(VB)
结束
此外,还可以调用ping命令实现这样的功能:功能休眠(N)
如果n> 0,则
os.execute(“平-N .. tonumber(N +1)的”localhost> NUL “)
的末尾
结束