Lua 程序延迟
Posted
技术标签:
【中文标题】Lua 程序延迟【英文标题】:Lua Program Delay 【发布时间】:2013-12-11 06:26:46 【问题描述】:我将如何使用它为我的 Lua 程序添加 2 分钟的延迟,这是延迟的代码,但我不知道如何添加延迟。
function sleep(n)
local t = os.clock()
while os.clock() - t <= n do
-- nothing
end
end
【问题讨论】:
请注意os.clock()
行为不可移植。此外,这个繁忙的循环会不必要地浪费 CPU 资源。使用来自 luasocket 的socket.sleep()
。
好的,我会用socket.sleep()
【参考方案1】:
os.clock
函数返回程序的 CPU 时间秒数。所以你的sleep
函数等待n
秒,如果你需要延迟2分钟,只需调用:
sleep(2*60)
请注意,除了忙等待之外,还有一些更好的解决方案可以实现sleep
功能,详情请参阅Sleep Function。
【讨论】:
谢谢,我应该知道 :D【参考方案2】:也许这会起作用
function sleep(n)
n = math.ceil(n)
if n <= 0 and n > 99999 then return end --If the user enter a number below 0 and higher than 99999 the limit in TIMEOUT command in Windows
os.execute("timeout /T "..tostring(seconds).." /NOBREAK")
end
这不会因为忙循环而浪费 CPU 时间 但是“等待 n 秒,按 CTRL+C 退出……” 在 Windows 中,您可以使用 -1 但它会永远等待,所以我限制它,因为永远等待是无用的。而且,如果您不希望“等待 n 秒,请按 CTRL+C 退出 ...”出现,我不知道是否可以在不显示的情况下执行相同的操作。如果你想摆脱它,只需在 os.execute("timeout /T "..tostring(seconds).." /NOBREAK") 语句之后添加 os.execute("cls") ,它将清除控制台
【讨论】:
以上是关于Lua 程序延迟的主要内容,如果未能解决你的问题,请参考以下文章