我已将 LuaInterface 项目嵌入到使用 .NET Framework 4.0 用 C# 编写的应用程序中。编译 LuaInterface 和 Lua 5.1 后,我在我的应用程序中引用了它们并创建了一个 Lua VM 并公开了一些 .NET 类。Lua VM 调用次数不多时,性能完全不受影响;但是当它开始调用大量 .NET 函数时,整个应用程序变得缓慢且无响应。
作为对此的回应,我创建了一个额外的线程来运行 Lua VM。但由于某种原因,当 Lua 执行函数调用时,更新 GUI 的线程不会更新,从而导致 GUI 卡顿。四处移动窗口时,您可以清楚地看到它一会没有响应,然后移动,没有响应等。
我该如何解决这个问题?我的印象是给 Lua 自己的线程,不同的线程不应该受到影响!这在某种程度上纯粹与我自己的代码有关吗?LuaInterface 调用 .NET 函数(性能方面)是否存在一些严重问题?我还能用什么?