我有一个COM对象,我需要从.NET Web服务访问。
我知道整个STA / MTA的事情 - 所以我的COM对象将转换为MTA并且没有全局状态(虽然本身不是多线程的)。
如果我将其设置为COM +服务器并指定对象池,这是否意味着对于每个Web服务线程,它将使用COM对象的不同实例?而不是排队?
由于
答案 0 :(得分:2)
这取决于几件事。
如果对池中的对象数设置上限,并且在Web服务客户端中保持对象引用处于活动状态,并且不使用JIT或者不在方法调用中设置Done标志,一旦达到游泳池限制,他们就会排队。
如果您确实使用JIT并通过调用SetComplete或使用方法上的AutoComplete属性设置Done标志,那么当方法返回时,COM +组件将被停用并放回池中。除非并发执行的方法的数量达到最大池限制,否则新方法调用永远不需要等待。