带MTA的进程外COM服务器
我有一个进程外COM(ATL)服务器,它已创建为自由线程(带MTA的进程外COM服务器,com,atl,mta,apartments,Com,Atl,Mta,Apartments,我有一个进程外COM(ATL)服务器,它已创建为自由线程(CComMultiThreadModel) 我对调用重新进入我的对象有点困惑,例如,我假设允许我同时从多个客户端调用,并同时处理这些请求,但是(根据我的日志)似乎每个请求都是序列化的 我缺少的是什么,简单地创建一个MTA类是否意味着它确实存在,或者我还需要做其他事情。注意,这里我指的是多个进程,所有进程都进行并发调用,而不是单个进程中的线程,因此conit\u多线程不是问题所在 这段来自MTA上一些MS文档的片段似乎一切都应该开箱即用:
CComMultiThreadModel
)
我对调用重新进入我的对象有点困惑,例如,我假设允许我同时从多个客户端调用,并同时处理这些请求,但是(根据我的日志)似乎每个请求都是序列化的
我缺少的是什么,简单地创建一个MTA类是否意味着它确实存在,或者我还需要做其他事情。注意,这里我指的是多个进程,所有进程都进行并发调用,而不是单个进程中的线程,因此conit\u多线程不是问题所在
这段来自MTA上一些MS文档的片段似乎一切都应该开箱即用:
多个客户端可以从不同线程同时调用支持自由线程的对象在进程外自由线程服务器中,COM通过RPC子系统在服务器进程中创建一个线程池,这些线程中的任何一个都可以在任何时候发出一个客户端调用(或多个客户端调用)我一问就找到了答案,您需要在stdafx.h
中指定\define\u ATL\u-FREE\u-THREADED
,在我问它之前,我找到了答案,您需要在stdafx.h
中指定\define\u-ATL\u-FREE\u-THREADED