gpt4 book ai didi

com - 避免 COM 编码

转载 作者:行者123 更新时间:2023-12-04 16:14:20 38 4
gpt4 key购买 nike

我对 com 线程模型有点困惑。

我有一个 inproc 服务器,我想创建一个可从任何线程访问的接口(interface),而不管 CoInitializeEx 中使用的线程模型和/或标志。

当将接口(interface)从一个线程传递到另一个线程时,我使用 CoMarshalInterface/CoUnmarshalInterface 没有问题,但我想知道是否存在任何方法可以避免这种情况并直接传递接口(interface)指针。

我尝试让接口(interface)使用中性单元,但仍然必须调用 CoMarshalInterface/CoUnmarshalInterface 以避免出现问题。

问候,毛罗。

最佳答案

COM 对象位于一间公寓内。通过跨单元边界的接口(interface)指针访问 COM 对象永远不是一个好主意,除非您的适用场景可以利用免费线程编码(marshal)处理聚合free-threaded marshaller ,本质上是说这个接口(interface)的所有客户端,不管单元和线程,都在同一个进程中,将依赖对象本身来保持同步和线程安全。对象本身必须聚合自由线程编码器接口(interface),因此希望您是它的作者以及客户端代码。

有关自由线程编码(marshal)处理的更多信息可以在 msdn.com 上找到,但是他们的一篇文章涵盖了我倾向于一次又一次重用的对象是 this one .

希望对你有所帮助。

关于com - 避免 COM 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113864/

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