咱們用到多個 AppDomain 處理特殊代碼,好比插件。但遇到 AppDomain 內新線程內異常時將沒法處理,由於 線程不屬於任何一個 AppDomain ,因此會致使 進程崩潰。插件
但咱們能夠使用一個守護進程,使用AppDomain.UnhandledException 事件 處理異常並知道是那個 AppDomain 發生的異常,由於在處理UnhandledException事件時,系統會掛起進程的終止,因此咱們能夠使用一個 Thread.Join() 方法等待全部 AppDomain 當前工做處理完成後,從新啓動當前進程,至於怎麼判斷當前工做是否處理完成,那就要看具體的業務規則了。線程
PS:這是我遇到這個問題的處理辦法在這裏記錄下,若是你用更好的方法的話請回復或留言告訴我,謝謝 ^-^進程