gpt4 book ai didi

c# - 防止代码被加载到另一个 AppDomain

转载 作者:太空狗 更新时间:2023-10-29 20:39:25 24 4
gpt4 key购买 nike

我们有一个正常工作的 excel 插件,但我们没有为使用 AppDomains 进行任何设置。

然而,一些其他插件似乎强制我们的代码加载第二次,我们最终让我们的代码在两个不同的 AppDomains 上运行(当我们想执行一个 Action 时,我们将把它在 AppDomain 1 上的队列中,然后 Excels OnTime 函数在 AppDomain 2 上运行 dequeue 方法,其中队列为空)。

所以,我的问题是:有没有一种简单的方法可以解决这个问题,也许可以防止我们的程序被加载两次或被其他 AppDomains 加载?有没有人对如何处理这个问题有任何其他想法?

更新:

我们设法做到的是,当我们被调用时将我们的整个程序加载到其他插件的 AppDomain 中,现在我们在相同的地方遇到了最奇怪的问题(曾经是“其他域的网关”的地方,就像上面提到的 Action 队列函数):

每当出现这种情况时,SynchronizationContext.Current 似乎都会重置为 null,例如,对于功能区上单击处理程序的每次调用,SynchronizationContext.Current 都设置为 null。

我什至尝试调试 .Net 代码,碰巧框架记住了一个旧的同步上下文,当一切恢复原样时,旧的同步上下文为空。

任何人都可以在这个问题上提供任何帮助,我真的开始失去它了吗?

最佳答案

关于c# - 防止代码被加载到另一个 AppDomain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22143393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com