我看到的每个地方,我都看到从许多C线程运行lua脚本的最佳做法是为每个线程使用不同的lua_State。从这一点开始,请使用以下脚本:
local var1
local var2
-- etc.
function onClick(x, y)
-- Process mouse click
end
function onKey(k)
-- Process key stroke
end
-- Do some stuff
while(true) do
-- Do some stuff
end
其中onClick
和onKey
是Win32应用程序调用的回调函数。这些函数逐个C线程调用。其中每一个都拥有自己的lua_State。因此,总共有3个C线程(和3个lua_States):一个用于上述每个函数,最后一个用于运行不是函数的所有东西(while循环和东西)。因此,由于Lua只能在lua_dofile和lua_dofile执行所有操作之后才能看到脚本中的内容,如何在不执行整个脚本的情况下调用这些函数?我只想让一个线程卡在无限循环中;其他人必须等待回调函数。