Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LuaInterface随机异常_C#_Lua_Luainterface - Fatal编程技术网

C# LuaInterface随机异常

C# LuaInterface随机异常,c#,lua,luainterface,C#,Lua,Luainterface,我正在使用LuaInterface在我正在制作的游戏中编写脚本 脚本编写工作得很好,但不知何故,我遇到了很多随机异常 我已经将问题缩小到从C#code调用lua函数的地方,这些函数从另一个线程调用,处理与游戏服务器的联网 我认为正在发生的是,lua代码正在运行,lua函数从另一个线程的C#调用,这导致了随机错误 我如何从C#调用函数: 函数是LuaFunction类型,消息是自定义对象 我得到的错误是: “LuaInterface.LuaScriptException”类型的第一次意外异常 发

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

脚本编写工作得很好,但不知何故,我遇到了很多随机异常

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

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

我如何从C#调用函数:

函数是LuaFunction类型,消息是自定义对象

我得到的错误是:

  • “LuaInterface.LuaScriptException”类型的第一次意外异常 发生在LuaInterface.dll中
  • 运行lua:函数时出错
  • “LuaInterface.LuaScriptException”类型的第一次意外异常 发生在LuaInterface.dll中
  • 无法打开脚本:主菜单/控制台

这可能与从创建LuaVM的线程以外的线程运行lua函数有关吗?

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

多亏BMitch指出了这一点,问题确实出在线程上

我已经修复了这个问题,让消息线程将带有参数的函数传递给主线程,然后主线程在更新方法中调用它们。

“不可预见的异常”,好的。“未知异常”,好的。“随机异常”。
function.Call(message);