![](/img/trans.png)
[英]Can I isolate my current AppDomain from being torn down, when another AppDomain I've loaded throws an unhandled exception?
[英]Preventing code being loaded to another AppDomain
我们有一个excel插件,通常工作正常,我们没有任何设置使用AppDomains
。
但是,其他一些插件似乎迫使我们的代码第二次加载,我们最终让我们的代码在两个不同的AppDomains
上运行(当我们想要执行一个动作时,我们会将它放在AppDomain
1的队列中,然后,Excels OnTime
函数在AppDomain
2上运行dequeue方法,队列为空。
所以,我的问题是:是否有一种简单的方法来解决这个问题,可能会阻止我们的程序被加载两次或其他AppDomains
? 有没有人对如何解决这个问题有任何其他想法?
更新:
我们设法做的是在我们被调用时将我们的整个程序加载到其他插件的AppDomain中,现在我们在同一个地方(曾经是“通往其他域的网关”的地方)有一些奇怪的问题,比如上面提到的动作队列函数):
只要存在这种情况,SynchronizationContext.Current似乎重置为null,例如对于功能区上的单击处理程序的每次调用,SynchronizationContext.Current都设置为null。
我甚至尝试调试.Net代码,并且发生该框架会记住旧的同步上下文,并且在将所有内容都恢复到原来状态时,旧的同步上下文为空。
任何人都可以在这个问题上给予任何帮助,我真的开始失去它吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.