Lua中沒有內置的Sleep函數,有4種方法可以實現Sleep函數功能,如下:
方法1
在一個死循環中設置一個跳出條件,但是這樣的做法會占用大量CPU資源,強烈不推薦使用.
function Sleep(n) local t0 = os.clock() while os.clock() - t0 <= n do end end
方法2
調用系統的Sleep函數,不消耗CPU,但是Windows系統中沒有內置這個命令(或者使用Cygwin),推薦在Linux系統中使用該方法.
function Sleep(n) os.execute("sleep " .. n) end
方法3
雖然Windows沒有內置Sleep命令,但是利用ping命令的性質.
function Sleep(n) if n > 0 then os.execute("ping -n " .. tonumber(n + 1) .. " localhost > NUL") end end
方法4
使用socket庫中select函數,可以傳遞0.1給n,使得休眠的時間精度達到毫秒級別.
require("socket") function Sleep(n) socket.select(nil, nil, n) end
轉自:http://blog.csdn.net/charlie_2010/article/details/6719891
