我需要以这样的方式运行一些本机C ++代码,如果它崩溃它不会影响我的C#程序。我可以使用out-proc COM server with "single use" activation,以便每个COM对象实例都在一个单独的进程中托管。
现在我创建一组工作线程,每个线程都创建该COM对象的实例。我还创建了一个“监视器”线程,它将负责工作线程。
假设监视程序线程注意到对out-proc对象的最新调用已经运行了两天,这可能意味着目标代码刚刚挂起。所以它想重新启动进程并需要进程id。它是如何找到进程ID的?
我能想到的愚蠢方式是该对象使用GetProcessId()
方法实现接口,客户端调用该方法并存储进程ID。
还有其他方法吗?