Winapi 如何让单独的线程为DCOM中的每个cliet请求提供服务

Winapi 如何让单独的线程为DCOM中的每个cliet请求提供服务,winapi,com,dcom,Winapi,Com,Dcom,我希望以这样的方式编写一个com服务器,以便每个向这个com服务器发出的新客户端请求都应该由单独的线程提供服务 到目前为止,我已经用proc COM server创建了一个示例MTA,但我在进行COM函数调用时观察到的是 此指针在com函数调用中是独立的(即,每个cocreateinstance正在创建独立的com对象) 如果在COM函数中打印GetCurrentThreadID(),则它会为每个客户端提供相同的值 这意味着只有一个com线程为我的所有客户端请求提供服务 请告知我们如何为每个客户

我希望以这样的方式编写一个com服务器,以便每个向这个com服务器发出的新客户端请求都应该由单独的线程提供服务

到目前为止,我已经用proc COM server创建了一个示例MTA,但我在进行COM函数调用时观察到的是

  • 此指针在com函数调用中是独立的(即,每个cocreateinstance正在创建独立的com对象)
  • 如果在COM函数中打印GetCurrentThreadID(),则它会为每个客户端提供相同的值
  • 这意味着只有一个com线程为我的所有客户端请求提供服务

    请告知我们如何为每个客户端分离线程。我可以承受同一com服务器的多个运行exe


    任何帮助都将不胜感激

    强制本地服务器为每个客户机提供不同的线程不是我尝试过的,我也无法想象这是可能的。您可以轻松地为每个客户机强制一个单独的进程。有关一种方法的信息,请参阅。我自己也很好奇,在保证不同的RPC线程处理客户端请求的同时,是否可以保留一个本地服务器;几乎和我一样好奇的是,为什么你首先需要这个。谢谢你的回答。我可以让同一个COM服务器的多个exe为我的每个客户端服务。我看到了您与我共享的链接,但感到困惑..我使用VS2008 ATL向导创建了COm,但没有找到需要在我的coclass中定义RegisterClassObjects函数的位置..请帮助下面提到的是我的WinMain函数CoInitializeEx(NULL,Conit_多线程)的代码;HRESULT-hr;hr=_AtlModule.RegisterClassObjects(CLSCTX_本地_服务器,REGCLS_多_独立);OutputDebugString(L“resut为”+bstr_t(hr));返回_AtlModule.WinMain(nShowCmd);对于MTA服务器,COM运行时通常会创建一个线程池来服务传入的请求。如果多个方法调用同时进入,那么它们将在不同的线程上提供服务。但是,如果它们一个接一个地出现——不管是来自不同的客户机还是其他客户机——那么这是正常的,并且期望它们由同一个线程提供服务。