我读了很多关于COM公寓和.NET互操作的文章,但我还没有找到这个问题的答案。这让我相信我可能问错了问题。
我知道.NET线程,就像本地线程一样,既可以是MTA也可以是STA,我找到了关于这方面的文档,但我很少看到对象及其CCW如何与这些单元相关联。
我的猜测是,CCW的线程模型是“两者都有”,并且CCW与创建线程所属的任何单元相关联。
CCW与哪个公寓关联,我能否控制此行为?
发布于 2012-10-09 17:04:06
.NET实现的COM对象通常可以驻留在任何类型的COM单元中。默认情况下,用于将.NET程序集注册为COM服务器的.NET方法/工具将使用线程模型= Both注册coclasses。
如果你想用不同的线程模型将一个.NET类公开为COM coclass (例如强制进入一个STA),那么你需要提供一个customised registration function。
https://stackoverflow.com/questions/12795053
复制相似问题