我有一个已创建为自由线程 ( CComMultiThreadModel
)的 out of proc COM (ATL) 服务器
我对这与重新进入我的对象的调用有何关系感到有些困惑,例如,我假设我将被允许同时从多个客户端调用并同时处理这些请求,但是看起来(根据我的日志)每个请求都被序列化。
我错过了什么,简单地创建一个作为 MTA 的类是否意味着它确实是或者还有其他我必须做的事情。请注意,我在这里指的是多个进程都进行并发调用,而不是单个进程中的线程,因此COINIT_MULTITHREADED
不是问题。
来自一些关于 MTA 的 MS 文档的片段似乎一切都应该开箱即用:
多个客户端可以同时从不同的线程调用支持自由线程的对象。在自由线程的进程外服务器中,COM 通过 RPC 子系统在服务器进程中创建一个线程池,并且客户端调用(或多个客户端调用)可以随时由这些线程中的任何一个传递