我正在使用名爲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