Time Lua程序延迟

Time Lua程序延迟,time,lua,delay,Time,Lua,Delay,我将如何使用它向我的Lua程序添加2分钟的延迟,这里是延迟的代码,但我不知道如何添加延迟 function sleep(n) local t = os.clock() while os.clock() - t <= n do -- nothing end end 功能睡眠(n) 本地t=os.clock() 而os.clock()-t函数则返回程序的CPU时间秒数。因此,您的sleep功能会等待n秒,如果您需要延迟2分钟,只需调用: sleep(2*60) 请注意,

我将如何使用它向我的Lua程序添加2分钟的延迟,这里是延迟的代码,但我不知道如何添加延迟

function sleep(n)
  local t = os.clock()
  while os.clock() - t <= n do
    -- nothing
  end
end
功能睡眠(n)
本地t=os.clock()

而os.clock()-t函数则返回程序的CPU时间秒数。因此,您的
sleep
功能会等待
n
秒,如果您需要延迟2分钟,只需调用:

sleep(2*60)
请注意,除了忙等待之外,还有一些更好的解决方案可以实现睡眠功能,请参阅以了解详细信息。

也许这会起作用

    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
功能睡眠(n)
n=数学单元(n)
如果n 99999,则返回end——如果用户输入的数字低于0且高于99999,则返回Windows中的“超时限制”命令
操作系统执行(“超时/T”。.tostring(秒)“/NOBREAK”)
结束
这不会因为忙循环而浪费CPU时间 但是“等待n秒,按CTRL+C退出…”
在Windows中,您可以使用-1,但它将永远等待,所以我限制它,因为永远等待是无用的。如果你不想“等待n秒,按CTRL+C退出…”出现,我不知道它是否可以做同样的事情而不显示它。如果您想摆脱这种情况,只需在os.execute(“timeout/T”..tostring(seconds)“/NOBREAK”)语句之后添加os.execute(“cls”),它就会清除控制台

谢谢,我应该知道:请注意,
os.clock()
行为是不可移植的。此外,这个繁忙的循环也在不必要地浪费CPU资源。使用luasocket中的
socket.sleep()
。好的,我将使用
socket.sleep()