Hola, desde hace tiempo había programado algo en Lua para crear scripts externos en algún programa que se pudieran editar cuando este ya estubiera compilado. Ahora, por primera vez, estoy haciendo un pequeño programa que ejecute estos scripts en Lua, pero me estoy encontrando con algún problema.
Normalmente todo funciona correctamente, pero cuando se empiezan a ejecutar muchos scripts a la vez, en un momento aleatorio el programa se cierra dejando ir "No se controló LuaException: unprotected error to call Lua API ()".
Aquí dejo el código del programa que estoy usando para probar Lua:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LuaInterface;
using System.Threading;
namespace LuaTest
{
class Conversa
{
public Conversa()
{
}
public void writeConsole(string s)
{
Console.WriteLine("Mensaje: " + s);
}
}
class Program
{
static void Main()
{
int times = 0;
Conversa conv
= new Conversa
();
lua.RegisterFunction("writeConsole", conv, conv.GetType().GetMethod("writeConsole"));
lua.DoFile("test.lua");
while (true)
{
lua.GetFunction("test").Call(times);
times++;
Thread.Sleep(1);
}
}
}
}
Y aquí el script Lua que se ejecuta:
function test(para)
writeConsole("La función test con parámetro "..para.." funciona!");
end
Conoceis si esta librería tiene algún error o es inestable o algo por el estilo o estoy cometiendo yo el problema? Si la librería funciona mal, qué otras alternativas tengo para llamar scripts desde fuera del programa?
Gracias