C#等待进程启动

3

我有两个程序(客户端和服务器),它们使用ipc进行通信。基本上,客户端向服务器发送一些数据,它们在同一台计算机上运行。如果服务器进程尚未启动,我希望客户端等待服务器进程启动,但不太明白如何实现这一点。我考虑使用两个事件(一个由客户端创建,另一个由服务器创建),并将对这些事件的等待调用都包装在临界区中。您会建议什么?


我需要类似于WaitForStart()的东西。 - Blablablaster
WaitForInputIdle()应该可以正常工作。 - Cody Gray
你会不会一直尝试通信,直到成功为止?如果是交互式的,可以考虑添加某种限流、超时和取消按钮。 - Jodrell
1个回答

0
IPC是如何工作的?我假设使用了NamedPipes,但对我来说,这个想法是一样的。我过去必须做类似于以下内容:
  • 客户端启动,连接到IPC服务器(假设使用NamedPipes。不应该有影响)

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

  • 服务器启动,并且作为第一件事声明IPC地址(或全局互斥量,如果您更喜欢它)。如果从多个客户端启动多个服务器进程,则第一个获胜,其他进程将再次死亡。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接