[C ++]我的COM服务器是否需要同步?

时间:2010-10-15 07:31:36

标签: c++ com synchronization

我开发了我的第一个COM组件(是的,COM开发领域的新手),初始化是用COINIT_MULTITHREADED完成的。此外,此COM组件是本地服务器可执行文件。但是,我没有向此组件添加任何同步代码。您如何看待:我是否必须将CRITICAL_SECTION添加到代码或MS COM架构为我处理它?提前谢谢。

2 个答案:

答案 0 :(得分:1)

由于您指定了COINIT_MULTITHREADED,因此COM允许多次同时调用您的服务器,因此您需要自己进行同步。

如果您希望COM序列化呼叫,请使用COINIT_APPARTMENTHREADED。

有关详细信息,请参阅MSDN

答案 1 :(得分:0)

如果您知道将从多个方向(线程)访问数据,请使用您自己的互斥机制,不要假设MS COM架构来处理它。

至少,根据微软制造的其他技术,我会做什么,就像“我们做基础,你做其余的事”。至少使用原生API。

将一个关键部分对象包裹在一个漂亮的课程中,然后用它踢它!