我已经开发了我的第一个COM组件(是的,是COM开发领域的新手),初始化是用COINIT_MULTITHREADED
完成的。此外,此COM组件是本地服务器可执行文件。但是,我没有向这个组件添加任何同步代码。您认为:我是否必须将CRITICAL_SECTION
添加到代码中,或者MS COM架构会为我处理它?提前谢谢。
发布于 2010-10-15 15:55:42
由于您指定了COINIT_MULTITHREADED,因此COM允许多个对服务器的同时调用,因此您需要自己进行同步。
如果希望COM序列化调用,请使用COINIT_APPARTMENTHREADED。
详情请参见MSDN。
发布于 2010-10-15 15:37:47
是。
使用您自己的互斥机制如果您知道数据将从多个方向(线程)访问,请不要假设MS COM架构来处理它。
这至少是我会做的,基于我有经验的微软开发的其他技术-就像“我们做基础,你做剩下的事情”。至少使用原生API。
将临界区对象包装在一个漂亮的类中,并用它踢开它!
https://stackoverflow.com/questions/3940283
复制相似问题