如果挂起,我怎么知道哪个“单用”out-proc COM服务器进程重启?

时间:2011-02-24 15:03:58

标签: windows visual-c++ com com-interop atl

我需要以这样的方式运行一些本机C ++代码,如果它崩溃它不会影响我的C#程序。我可以使用out-proc COM server with "single use" activation,以便每个COM对象实例都在一个单独的进程中托管。

现在我创建一组工作线程,每个线程都创建该COM对象的实例。我还创建了一个“监视器”线程,它将负责工作线程。

假设监视程序线程注意到对out-proc对象的最新调用已经运行了两天,这可能意味着目标代码刚刚挂起。所以它想重新启动进程并需要进程id。它是如何找到进程ID的?

我能想到的愚蠢方式是该对象使用GetProcessId()方法实现接口,客户端调用该方法并存储进程ID。

还有其他方法吗?

0 个答案:

没有答案