佚名通过本文主要向大家介绍了
comserver中的子线程为什么调用出接口事件而client端收不到呢?而comserver的主线程可以。急!!!等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: com server中的子线程为什么调用出接口事件而client端收不到呢?而com server的主线程可以。急!!!
描述:
解决方案1:
描述:
com server中的子线程为什么调用出接口事件而client端收不到呢?而com server的主线程可以。急!!!
解决方案1:
我与你遇到同样的问题,不过我已经查明白原因了,但不知道如何解决。这涉及到在套间间列集指针的问题,如果你不是使用MTA来创建你的COM SERVER的话,那主线程是一个STA(对象一般在这个STA中创建),但你创建的其他线程不在这个主线程的STA中,所以不能直接使用指针来调用接口方法(好象调用不会报错,但不产生任何效果),要求你必须在“子”线程中进入一个STA(调用CoInitialize),然后在这两个STA间来列集指针(使用CoMarshalInterThreadInterfaceInStream)。
我现在的问题是,对于ATL生成的事件代CProxy_IControlEvents< CControl >,他的接口指针是什么,到底该列集什么,我想列集this,但行不通。
如果你解决了,通知我一声!