关于 AppDomain 未知异常导致进程崩溃的处理办法

我们用到多个 AppDomain 处理特殊代码,比如插件。但遇到 AppDomain 内新线程内异常时将无法处理,因为 线程不属于任何一个 AppDomain ,所以会导致 进程崩溃。

但我们可以使用一个守护进程,使用AppDomain.UnhandledException 事件 处理异常并知道是那个 AppDomain 发生的异常,因为在处理UnhandledException事件时,系统会挂起进程的终止,所以我们可以使用一个 Thread.Join() 方法等待所有 AppDomain 当前工作处理完成后,重新启动当前进程,至于怎么判断当前工作是否处理完成,那就要看具体的业务规则了。

PS:这是我遇到这个问题的处理办法在这里记录下,如果你用更好的方法的话请回复或留言告诉我,谢谢 ^-^

 

posted @ 2013-07-22 11:38  Jun六月  阅读(679)  评论(0编辑  收藏  举报