【问题标题】:LuaInterface random exceptionsLuaInterface 随机异常
【发布时间】:2011-08-30 12:15:02
【问题描述】:

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

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

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

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

我如何从 C# 调用函数:

function.Call(message);

function 是 LuaFunction 类型,message 是自定义对象。

我遇到的错误:

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

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

【问题讨论】:

  • “不可预见的异常”,好的。 “未知异常”,好的。 “随机异常”。 . . . . .

标签: c# lua luainterface


【解决方案1】:

Lua 不是线程安全的。您要么需要每个线程都有一个 Lua 状态并调用线程特定的状态,要么在任何 Lua 调用周围加锁。

【讨论】:

    【解决方案2】:

    问题确实出在线程上,感谢 BMitch 指出这一点。

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

    【讨论】:

      猜你喜欢
      • 2020-05-02
      • 2012-11-28
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 2014-03-16
      相关资源
      最近更新 更多