0

我有一个需要从 .NET Web 服务访问的 COM 对象。

我知道整个 STA/MTA 的事情——所以我的 COM 对象将被转换为 MTA 并且没有全局状态(虽然本身不​​是多线程的)。

如果我将它设置为 COM+ 服务器,并指定一个对象池,这是否意味着对于每个 Web 服务线程,它将使用不同的 COM 对象实例?而且不排队?

谢谢

4

1 回答 1

2

这取决于几件事。

如果您对池中的对象数量设置了上限,并且在 Web 服务客户端中保持对象引用处于活动状态,并且您不使用 JIT 或在方法调用中不设置 Done 标志,它们将一旦达到池限制就排队。

如果您确实使用 JIT 并通过调用 SetComplete 或使用方法上的 AutoComplete 属性来设置 Done 标志,则 COM+ 组件将被停用并在方法返回时放回池中。除非并发执行的方法数达到最大池限制,否则新方法调用将永远不需要等待。

于 2009-05-12T14:36:04.027 回答