我正在使用一个名为LuaInterface的程序集,在我的C#应用程序中运行lua代码。在lua执行期间,我创建了一些WinForms和映射事件处理程序(lua方法)到它们上面。
问题是
是否有任何方法可以创建一个新线程/进程/AppDomain,以处理其自己的WndProc,以便只有这个子任务需要处理异常?
我应该在lua的doString中使用while循环阻止我的Editor,直到表单关闭吗?
我还有哪些选项?
对此事的任何建议都将不胜感激!
问题是
doString
(又称runLuaCode
)方法仅运行初始化例程和构造函数。这是可以接受的和有意的,但doString
函数是非阻塞的,因此函数返回,而Lua创建的表单仍然存在。这意味着任何未在构造函数期间引发的异常(空引用等)都不会由lua错误处理处理,并且会崩溃直到我的Editor的wndProc - 这很可能会使我的编辑器崩溃,并使错误处理几乎不可能。是否有任何方法可以创建一个新线程/进程/AppDomain,以处理其自己的WndProc,以便只有这个子任务需要处理异常?
我应该在lua的doString中使用while循环阻止我的Editor,直到表单关闭吗?
我还有哪些选项?
对此事的任何建议都将不胜感激!