我正在使用名为LuaInterface的程序集在我的C#应用程序中运行lua-code。在lua执行期间,我为它们创建了一些WinForms &地图事件处理程序(lua-methods)。如何捕捉C#中的Lua异常#
问题是,doString
(又名runLuaCode
)方法只运行init例程和构造函数。这很好,但是doString
函数的行为是非阻塞的,所以当Lua创建的表单仍然存在时,函数会返回。这意味着在构造函数中不会产生的任何异常(null-ref和alike)不会由lua错误处理来处理,一直到我编辑器的wndProc都崩溃 - 这很可能会杀死我的编辑器并进行错误处理几乎不可能。
有什么办法来创建一个新的线程/进程/ AppDomain来处理它自己的WndProc,以便只有这个子任务需要处理异常?
我应该在doString中封锁我的编辑器,并在lua中加入while循环,直到窗体关闭?
我还有其他选择吗?
有关此事的任何建议非常感谢!
对不起 - 我不明白吗? – Corelgott 2011-02-09 08:41:36
Oo - woop我看到了...这不是故意 - 抱歉&thx的提示 - 提醒自己 - rtfm – Corelgott 2011-02-09 09:57:32