.NET Framework 4.0を使用してC#で記述されたアプリケーションにLuaInterfaceプロジェクトを埋め込みました。LuaInterfaceとLua5.1をコンパイルした後、アプリケーションでそれらを参照し、Lua VMを作成して、いくつかの.NETクラスを公開しました。Lua VMが多くの呼び出しを行わない場合、パフォーマンスはまったく影響を受けません。ただし、多数の.NET関数を呼び出し始めると、アプリケーション全体が遅くなり、応答しなくなります。
これに対応して、LuaVMを実行するための追加のスレッドを作成しました。ただし、何らかの理由で、Luaが関数呼び出しを実行している間、GUIが更新されるスレッドは更新されないため、GUIが途切れます。ウィンドウを移動すると、しばらく応答しない、次に移動する、応答しないなどのことがはっきりとわかります。
この問題を解決するにはどうすればよいですか?Luaに独自のスレッドを与えれば、別のスレッドは影響を受けないはずだという印象を受けました。これは純粋に私自身のコードに何らかの形で関連していますか?LuaInterfaceには、.NET関数の呼び出し(パフォーマンスに関して)にいくつかの重大な問題がありますか?他に何を使用できますか?