2

我有一个已创建为自由线程 ( CComMultiThreadModel)的 out of proc COM (ATL) 服务器

我对这与重新进入我的对象的调用有何关系感到有些困惑,例如,我假设我将被允许同时从多个客户端调用并同时处理这些请求,但是看起来(根据我的日志)每个请求都被序列化。

我错过了什么,简单地创建一个作为 MTA 的类是否意味着它确实是或者还有其他我必须做的事情。请注意,我在这里指的是多个进程都进行并发调用,而不是单个进程中的线程,因此COINIT_MULTITHREADED不是问题。

来自一些关于 MTA 的 MS 文档的片段似乎一切都应该开箱即用:

多个客户端可以同时从不同的线程调用支持自由线程的对象。在自由线程的进程外服务器中,COM 通过 RPC 子系统在服务器进程中创建一个线程池,并且客户端调用(或多个客户端调用)可以随时由这些线程中的任何一个传递

4

1 回答 1

4

我一问就找到了答案,你需要#define _ATL_FREE_THREADEDstdafx.h

于 2012-05-29T08:26:33.383 回答