LuaInterface随机异常

时间:2011-08-30 12:15:02

标签: c# lua luainterface

我正在使用LuaInterface在我正在制作的游戏中编写脚本。

脚本编写工作非常好,但不知怎的,我得到了很多随机异常。

我已经将问题缩小到我从C#代码调用lua函数的地方,这些函数是从另一个线程调用的,处理与游戏服务器的网络。

我认为正在发生的是,正在运行lua代码,并且从另一个线程的C#调用lua函数,这会导致随机错误。

我如何从C#调用函数:

function.Call(message);

函数的类型为LuaFunction,message是自定义对象。

我得到的错误:

  • 类型'LuaInterface.LuaScriptException'的第一次机会异常 发生在LuaInterface.dll
  • 运行lua:function
  • 时出错
  • 类型'LuaInterface.LuaScriptException'的第一次机会异常 发生在LuaInterface.dll
  • 无法打开脚本:mainmenu / console

是否与从创建LuaVM的线程以外的线程运行lua函数有关?

2 个答案:

答案 0 :(得分:1)

Lua不是线程安全的。您需要为每个线程设置一个Lua状态并调用特定于线程的状态,或者在任何Lua调用周围放置锁定。

答案 1 :(得分:0)

问题确实存在问题,感谢BMitch指出这一点。

我已经通过让消息线程处理带有参数的函数来修复它,主线程然后在更新方法中调用它们。