考虑一下情况。我有一个包含两个COM类的进程内COM服务器。这两个类在注册表中都标记为“无线程模型” - “ThreadingModel”值就不存在了。两个类都读/写同一组全局变量而没有任何同步。
据我所知,“没有线程模型”会强制COM禁止不同线程同时访问同一个类的相同或不同实例。
COM是否会阻止对上述两个不同类的实例进行并发访问?在这种情况下,从两个不同的COM类访问全局变量时是否需要同步?
答案 0 :(得分:2)
当ThreadingModel不存在时,它默认为主STA或传统STA。始终在此旧版STA中创建所有旧组件。有关详细信息,我建议阅读 http://www.codeproject.com/kb/com/CCOMThread.aspx