在Process边界发出一个线程信号

时间:2010-06-23 09:42:06

标签: c++ com multithreading

COM客户端是否可以在COM服务器中发出信号?

1 个答案:

答案 0 :(得分:3)

要让COM客户端向服务器发出信号,您需要一些像这样的COM接口:

interface IClientServerSignalling
{
   void SignalMyServer();
}

COM客户端将在某个现有对象上使用QueryInterface(或者您可以仅为此目的实现特定对象),然后调用该方法,该方法将被编组到执行它的COM服务器。然后,该方法可以做任何你需要的事情。

如果您尝试在COM服务器上的特定工作线程上进行调用,那么您的SignalMyServer()方法可以使用CreateEventEx()wait functions等同步机制进行通信。可以说,您可以在不使用COM API的情况下从COM客户端到COM服务器执行此操作,但这可以让您知道COM服务器的运行位置以及您具有正确的安全权限和权限。