如何在不执行脚本的情况下加载 lua 变量和函数?

无论我在哪里查找,我都看到了从许多 C 线程运行 lua 脚本的最佳做法是为每个线程拥有一个不同的 lua_State。从这一点出发,以下是脚本内容:

local var1
local var2
-- 等等。

function onClick(x, y)
-- 处理鼠标单击
end

function onKey(k)
-- 处理按键
end

-- 进行一些操作
while(true) do
-- 进行一些操作
end

其中, onClickonKey 是由 Win32 应用程序调用的回调函数。每个 C 线程调用这些函数中的一个。每个线程都有它自己的 lua_State。因此,总共有 3 个 C 线程(和 3 个 lua_States):一个用于上述每个函数,最后一个用于运行不是函数的所有内容(while 循环和其他操作)。因此,由于 Lua 只能在 lua_dofile 和 lua_dofile 之后看到脚本中的内容并执行所有内容,那么这些函数如何被调用而不执行整个脚本呢?我只想让一个线程卡在无限循环中;其他线程必须等待回调函数。

点赞