Lua 语言没有内置的 Sleep 函数, 有 4 种方法可以实现 Sleep 函数功能:
死循环
Warning
强烈不推荐使用。
在一个死循环中设置一个跳出条件,但是这样的做法会占用大量 CPU 资源。
function Sleep(n) local t0 = os.clock() while os.clock() - t0 <= n do end end点击复制复制失败已复制
调用系统Sleep函数
提示
推荐在 Linux 系统中使用该方法
这种方法不消耗 CPU ,但是 Windows 系统中没有内置这个命令(或者使用 Cygwin )。
function Sleep(n) os.execute("sleep " .. n) end点击复制复制失败已复制
ping
虽然Windows没有内置Sleep命令,但是利用ping命令的性质。
function Sleep(n) if n > 0 then os.execute("ping -n " .. tonumber(n + 1) .. " localhost > NUL") end end点击复制复制失败已复制
socket.select
使用 socket 库中 select 函数, 可以传递 0.1 给 n , 使得休眠的时间精度达到毫秒级别。
require("socket") function Sleep(n) socket.select(nil, nil, n) end