创设ATL类的时候,选Single/Apartment都是STA对吗
创建ATL类的时候,选Single/Apartment都是STA对吗?
那么这两种选择的区别在哪里呢,如果都是STA的话?
------解决思路----------------------
应该都是STA,我只式过Apartment可以肯定是STA,我记得看COM书上也说Single也是STA。区别就不知道了。
当在这里学习了。
个人感觉还是STA好点,对线程的数据有保护这点很不错。
------解决思路----------------------
生成完 以后 看你 的对象 集成的 CComObjectRootEx 是什么方式的
------解决思路----------------------
Single和STA不是一回事,请看MSDN,它们注册表项上有区别。Single在其他线程上有并发调用时,会发生线程切换,效率比STA低,是一个很老的COM Server才用的模式。STA,当其他线程上对组件有并发调用时,虽然也是在STA线程上串行调用,但不会发生线程切换,其他线程是向COM Server的线程发消息并阻塞等待。
那么这两种选择的区别在哪里呢,如果都是STA的话?
------解决思路----------------------
应该都是STA,我只式过Apartment可以肯定是STA,我记得看COM书上也说Single也是STA。区别就不知道了。
当在这里学习了。
个人感觉还是STA好点,对线程的数据有保护这点很不错。
------解决思路----------------------
生成完 以后 看你 的对象 集成的 CComObjectRootEx 是什么方式的
------解决思路----------------------
Single和STA不是一回事,请看MSDN,它们注册表项上有区别。Single在其他线程上有并发调用时,会发生线程切换,效率比STA低,是一个很老的COM Server才用的模式。STA,当其他线程上对组件有并发调用时,虽然也是在STA线程上串行调用,但不会发生线程切换,其他线程是向COM Server的线程发消息并阻塞等待。