COM+ 资源分配器线程类型

对 COM+ 资源分配器的调用可能源自以下线程类型之一:

  • 单元线程 (STA)
  • 免费线程 (MTA)
  • 非 COM 线程(应用程序或 分配器管理器 垃圾回收器线程)

如果资源分配器不是 COM 对象,则它必须能够随时处理从任何线程到达的调用。 如果资源分配器是 COM 对象,则应将 COM 对象注册到 的线程模型。 这样,STA 或 MTA 线程就可以在没有线程开关的情况下创建和使用资源分配器。

如果资源分配器创建并使用另一个 COM 对象(例如进程外资源管理器),资源分配器可能需要维护对此其他 COM 对象的多个代理,并确保对对象的调用是使用调用线程的适当代理进行的。 当资源分配器创建此对象时,它会封送并保存引用。 在再次调用对象之前,它必须取消对调用线程创建代理。

通过将线程 ID 中的映射保留到代理指针,缓存这些每线程代理可能更有效。 此映射在进程中使用新线程时展开。

COM+ 资源分配器概念