进程外 COM 单例



我正在处理一个单线程库(不是线程安全的),我想将其包装在COM进程外对象中以绕过其线程不安全。我需要一种行为,其中每个新的 COM 对象在其自己的进程中实例化 - 某种形式的进程外单例。

自从我一直在处理硬核 COM 以来已经有一段时间了,所以我不确定如何处理这个问题,或者如果没有一些诡计,这是否完全可能。

调用 CoRegisterClassObject(),并将 REGCLS 参数设置为 REGCLS_SINGLEUSE。 当心成本,一个进程是一个廉价的操作系统对象。

否则,没有理由不能确保封送方法调用是线程安全的,只需调用 CoInitializeEx() 来请求 STA。 在进程外服务器中与在进程内服务器中一样好。 如果您这样做只是为了解决线程问题,那么绝对赞成进程内 STA。 需要消息循环。

最新更新