multithreading - COM 互操作中的应用程序域

标签 multithreading com interop log4net appdomain

我有一个调用 C++ COM 对象的 .Net 类,该对象又调用 COM 中的另一个 .Net 类。 我发现这两个 .Net 类位于不同的应用程序域中(这给 log4net 带来了一些麻烦)。请注意,它们在同一个线程中。

这是为什么? 有没有办法确保它们在同一个应用程序域中?

最佳答案

调用作为 COM 公开的 .NET 类需要对数据进行编码(marshal)处理。 AppDomains 分离数据访问。当您调用 COM 组件(无论它是 .NET 应用程序)时,您必须将其放入沙盒中。在 .NET 中,沙盒使用不同的 AppDomain。

关于multithreading - COM 互操作中的应用程序域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1091233/

相关文章:

pdf - 有什么工具可以把word和excel转成PDF吗?

c# - Microsoft Word 自动化/互操作 Win32 API 问题

python - 使用 Matplotlib、PyQt 和 Threading 进行实时绘图以 python 崩溃结束

multithreading - 如何比较和递增原子变量

c# - 带指针的 PInvoke - C++ 到 C#

windows - 在 Win2008 R2 上初始化 NullRender 失败,并出现错误 REGDB_E_CLASSNOTREG

.net - Reg-Free COM 是否与互操作一起使用?

java - java实现异步消息队列

c - C 中的多线程

com - 如何执行/ShellExecuteEx/InvokeCommand ITEMIDLIST指向Shell对象?