com线程模型实验之二

通过第一篇文章的实验我们的出了如下的结论:

1.如果com组件的线程模型与所处的套间模型不匹配的话,com库将会自动另外开启一个线程,并初始化为与之匹配的线程套间,并在此套间中创建COM对象。比如在单线程套间中创建Free线程模型的com组件或者在多线程套间中调用single或者apartment类型的com组建都会单独创建一个线程来创建组件。因为一个线程只能拥有一种类型的套间。并且我们发现如果多个线程套间都是不匹配的,则他们创建的组件对象都会共享同一个线程套间。如果用Process Explorer我们会看到如果套间不兼容的时候创建组件会多出很多线程。

2.对于single线程模型的组件,在创建后,所有对single线程模型的对象的调用都会集中到一个线程套间中调用。

3.当前看来多线程套间中调用free线程模型的组件与单线程套间中调用apartment类型的组件都是一样,但是总要有不一样的地方吧,那是肯定的,后面我会继续说。

后面我会再来实验一下线程间传递组件对象接口指针,未完待续。

原文地址:https://www.cnblogs.com/sosopop/p/1768566.html