带有MTA的进程外COM服务器

时间:2012-05-29 08:08:26

标签: com atl mta apartments

我有一个已经创建为免费线程(CComMultiThreadModel

的proc(ATL)服务器

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

我缺少什么,只是创建一个类作为MTA意味着它真的是或者我还有其他事情需要做。请注意,我在这里指的是所有进行并发调用的多个进程,而不是单个进程中的线程,因此COINIT_MULTITHREADED不是问题。

MTA上的一些MS文档的片段看起来似乎应该是开箱即用的:

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

1 个答案:

答案 0 :(得分:4)

在我问到它之前,我找到了答案,您需要在#define _ATL_FREE_THREADED中指定stdafx.h