这是一个Lua为C#(LUA接口)的具体问题,它不会在本地C Lua的工作,所以请如果你没有经验的Lua C#请三思如果你的回答可以帮我,谢谢
所以问题是如果用户提供一个脚本l ike this
while (true) do end
这是怎么回事,我不会干干净净地终止它,没有Lua死在我身上?我已经尝试了很多方法,只是调用lua.Close()从一个单独的线程只会给你一个在调用Lua API时的未受保护的错误(尝试索引一个零值)错误,问题的根源是Lua不是线程安全的,并且因为我必须从一个单独的线程(主线程正在忙于服务DoString调用)调用close,所以它有一点儿问题。我尝试添加一个调试钩子,并且检查了线程ID在DoString线程和钩子之间是相同的,并且它们是相同的,所以在钩子中执行的任何东西都在DoString线程上执行。这没有帮助,仍然得到例外。如何...在Lua C#中放弃DoString!?
感谢
编辑
得到远一点,如果我处置LUA类我得到线程的异常运行无限DoString,从VStudio调试我只能赶上这一点,恢复。但是,如果我运行exe或者在调试或发布我有时不能恢复和崩溃!?我从DoString线程得到的错误是
试图读取或写入受保护的内存。这通常表明其他内存已损坏。
你在谈论哪个“Lua for C#”? – 2012-07-24 07:58:21
有多个? http://code.google.com/p/luainterface/ – Anders 2012-07-24 08:00:48
是的,我个人更喜欢https:// github。com/jsimmons/LuaSharp在Mono下运行。 – Pondidum 2012-07-24 08:16:24