C#等待进程启动

时间:2011-05-17 11:22:03

标签: c# process

我有两个使用ipc进行通信的程序(客户端和服务器)。基本上,客户端在服务器上发送一些数据,它们在同一台计算机上工作。我希望客户端等待服务器进程启动,如果它还没有启动但不太明白如何实现这一点。我想到使用2个事件(一个是我的客户端创建的,一个是由服务器创建的),并且包含两个调用以在临界区中等待这些事件。你会建议什么?

1 个答案:

答案 0 :(得分:0)

IPC如何运作?我假设有NamedPipes,但这个想法对我来说是一样的。我过去不得不做类似的事情并大致这样做:

  • 客户端启动,连接到IPC服务器(假设NamedPipes。无所谓)

  • 连接失败,客户端通过触发服务器启动来恢复(这可以通过多种方式处理,从执行服务器二进制文件从已知位置到使用trigger started services

  • 服务器启动并且作为首先声称IPC地址之一(或者如果您更喜欢那个地址的全局互斥体)。如果从多个客户端启动多个服务器进程,则第一个服务器进程将获胜,而其他客户端将再次死亡。

  • 客户在适当的时间后重试