套间必须初始化com库并可以具有消息循环.ClassThreadProc将满足这些需求.在她的实现中,不是简单地使用一个GetMessage/DispatchMessage循环,而是使用了MsgWaitForMultipleObjects将等待三件事情的发生:m_hCreateComponectEvent,一个windows消息和一个超时事件.当事件m_hCreateComponentEvent被设置时,MsgWaitForMultipleObjects将停止等待,然后ClassThreadProc将调用CreateComponentOnThread.当向此线程发送一个Windows消息时,classThreadProc将使用一个Peek Message/DispatchMessage循环来取出此消息(即队列中的其他消息)并将其分发出去.当等待超时时,ClassThreadProc将调用CSimpleAppartment::WorkerFunction.此函数是由CsimpleApartment的派生类实现的.
当然我们也可以使用GetMessage/DispatchMessage来完成上述处理.此时将不再使用一个事件来创建组件,而可以使用PostThreadMessage.但MsgWaitForMultipleObjects比GetMessage/DispatchMessage的效率高得多.
本文探讨了套间初始化com库的方法,并通过ClassThreadProc实现消息循环。详细介绍了使用MsgWaitForMultipleObjects等待多个事件,包括组件创建事件、Windows消息及超时事件,相比传统GetMessage/DispatchMessage方式更高效。
917

被折叠的 条评论
为什么被折叠?



