Tekkaman

导航

 

2011年5月15日

摘要: 【跨套间访问】 COM对象接口只能在COM线程中调用,COM允许从一个套间中引出接口,并且引用到另一个套间中,使得对象的套间之外也能看到套间的接口。 COM使用一种称为列集(Marshal)的技术,允许接口指针可以被跨越套间边界传递出去。 列集一个接口指针,实际上只是简单地把接口指针变换成一个可被传输的字节流,散集这个字节流,就能还原出接口指针。当散集发生在同一套间的时候,散集出来的指针指向实际的对象;当散集发生在不同套间的时候,散集出来的指针实际指向的一是一个代理指针,通过这个代理指针,保证了COM对象的线程安全性。 以上三段小文字言简意赅地介绍了跨套间访问的散集/列集技术。如有未明,请查看 阅读全文
posted @ 2011-05-15 20:07 Tekkaman 阅读(694) 评论(0) 推荐(1)
 
摘要: 【什么是套间】 套间(APARTMENT)是什么?套间是线程的执行环境。根据这个,我一条一条来解释一下跟套间有关的文章里一些名词和术语是个什么意思。1、STA,单线程套间,真实意思是单线程执行环境。每个线程都有个自己的套间。2、MTA,多线程套间,真实意思是多线程执行环境。所有线程共享一个MTA。3、STA和MTA的差别是什么?除了STA和MTA的共同点之外,STA建立了一个窗口,通过窗口的消息机制来保证本线程COM对象方法的同步调用,MTA基本什么也不做。这是唯一的差别。4、STA和MTA的共同点是什么?都提供通过Proxy访问其它套间的服务,都提供其它套间访问自己时的Stub服务。5、每个 阅读全文
posted @ 2011-05-15 17:06 Tekkaman 阅读(1807) 评论(0) 推荐(2)