今天看潘爱民老师的《COM原理与应用》一书,讲到套间线程和自由线程。其中说:“如果其他线程中的代码要调用属于这个套间线程的COM对象的成员函数,则它不能直接调用,而要通过代理/存根模块进行间接调用”,还给了一个理由说是因为虽然两个线程在同一个进程地址空间中,但它们使用不同的堆栈。接着又说在自由线程中调用可以直接进行。 这里为什么会有这种区别?我想不同的堆栈应该不是主要原因吧。
解决方案 »
- [求助]完成端口,10053错误。 如果发送方速度大于接收方就会有这个错误
- DLL引起的问题?
- 程序持续的 handle 泄露会引起什么问题?
- 如何将数据写入到Sql Server2000中的binary类型的字段中。
- 怎么知道从richedit中GetSelText出来的字符是不是汉字?
- 在声卡未提供Mixer(混音器)驱动程序情况下,如何同步录下系统输出的所有有声音及所有音源输入?
- 用CDC画图
- 大家探讨一下MFC中设计模式的运用
- 高分求解:如何让鼠标指针在CRichEditView上不改变形状
- ???ado访问sql2000,我要查询某一日期型字段,但只想查出大于某一时间(几点、分、秒,不要日期)的纪录该怎么写??
- SQL SERVER 2000 问提
- 谁能给我提供一个关于注册表操作的实例?
不过潘爱民老师的〈COM原理与应用〉同样是经典!
至少在我看来,比INSIDE COM以及其他一些COM的书要好多了!楼主的所谓地址栈,应该是TLS
这种书比较!? 呵呵 你是逗呢吧。 听说潘这本可没少从
inside com抄内容。 ^_^
抄内容这种说法不科学吧?? 如此说来,候SIR的《深入浅出》岂不是成了MSDN的一小部分内容的翻版? :)
或许INSIDE COM入门还是不错,COM原理与应用就比较深入了。
如果是自由线程的话,则由COM对象自己来保证线程安全,所以其他线程可以安全的调用COM对象的函数。
所以结论就是:套间线程的COM对象由COM来保证线程安全,自由线程的COM对象由对象自己来保证线程安全。另外需要注意的一点是,COM对象只能创建在与他的线程模型相匹配的套间里,否则就要通过proxy来间接调用。