COM基本问题
刚开始看COM,有些问题不是很明白。
1. COM线程模型是在组件级别其总用的么?比如有个DLL内部实现了两个组件A和B,可以分别设置为STA和MTA?
2. COM组件之间是否可以互相调用?比如A组件中的funcA1调用组件B中的funcB1。有没有推荐的方式,或者就是不应该存在这种互相的联系?
3. 如果我要实现一个服务,包含一组函数,func1, func2, func3, func4,其中(func1, func2)需要排队,例如ClientA的线程A1调用func1, A2调用func2,ClientB的线程调用func2, B2调用func2,要求服务端依次处理,A1->func1, A2->func2, B1->func2, B2->func2。而func3和(func1, func2)一样, func4也是如此。也就是说这4个函数分成3组,(func1, func2),func3和func4共有3个队列。但是这三组调用之间可能需要互相调用。请问怎么设计?如果把4个函数放在一个组件的一个接口中,那么弧线个调用问题就比较好实现。但是无法实现互相隔离的3个处理队列。如果放在三个不同的组件的接口中(如果问题1成立),那么互相调用有很麻烦(也就是问题2)