我有两个程序(客户端和服务器),它们使用ipc进行通信。基本上,客户端向服务器发送一些数据,它们在同一台计算机上运行。如果服务器进程尚未启动,我希望客户端等待服务器进程启动,但不太明白如何实现这一点。我考虑使用两个事件(一个由客户端创建,另一个由服务器创建),并将对这些事件的等待调用都包装在临界区中。您会建议什么?
IPC是如何工作的?我假设使用了NamedPipes,但对我来说,这个想法是一样的。我过去必须做类似于以下内容: 客户端启动,连接到IPC服务器(假设使用NamedPipes。不应该有影响) 连接失败,客户端通过触发服务器启动来恢复(可以通过多种方式处理,从已知位置执行服务器二进制文件到使用触发已启动服务) 服务器启动,并且作为第一件事声明IPC地址(或全局互斥量,如果您更喜欢它)。如果从多个客户端启动多个服务器进程,则第一个获胜,其他进程将再次死亡。 客户端在适当的时间后重试
Process.WaitForExit()
- Cody GrayWaitForInputIdle()
应该可以正常工作。 - Cody Gray