2012-05-09 66 views
5

我想用Lua Lanes做一个多线程并记录所花费的时间。下面是代码:Lua Lane:尝试索引全局'os'(一个零值)

require "lanes" 

function performTest() 
    os.execute("testJson-mt.lua") 
end 

for i=1,10,1 do 
    f= lanes.gen(performTest) 
    a=f() 
    startTime = os.time() 
    print("ID "..a[1].." completed.") 
    endTime = os.time() 
    diff = os.difftime (endTime, startTime) 
    print(i..","..os.date("%x %X",startTime)..","..os.date("%x %X",endTime)..","..startTime..","..endTime..","..diff) 
end 

然而,当我运行代码,控制台会返回一个错误:lua: testLanes.lua:4: attempt to index global 'os' (a nil value)

此错误代码指向此行,其中os.execute("testJson-mt.lua")。我不太明白这个错误。请指教。

注意:我正在使用Lua for Windows作为IDE。

回答

7

默认情况下,lanes.gen loads no libraries,甚至没有基础库。因此,通过'*'作为lanes.gen的第一个参数来获取车道中的os和其他模块。

+0

我试过了。有用。谢谢! – ktlim

+2

标记一个帮助你解决问题的答案将会很棒;) –

+0

“*”加载所有过度杀毒的库,你可以使用“os”作为第一个参数lanes.gen – Stomp

1

你也可以做require "os"

+1

请注意,这个require调用必须位于函数performTest()中,以便它在每个通道中执行而不是在基本状态中执行。 – RBerteig

相关问题