我在Windows上使用命名管道(C ++)。我能够将数据从一个不相关的进程发送到另一个进程。 但为此,我必须首先启动服务器。并在运行客户端之前使用“CreateNamedPipe”。客户端使用“CreateFile”连接到服务器。
有没有办法在启动服务器之前先运行客户端? (不试图在循环中使用“CreateFile”直到它成功)
谢谢。
答案 0 :(得分:0)
IMO,这取决于您的使用案例。我的答案将基于您的软件不需要命名管道工作的情况。例如,假设一个使用命名管道来记录活动的软件。通过这种方式,我们可以理解您的软件无需记录即可完美运行。
如果您启动程序而不需要命名pip,则应该可以。然后,一旦所有内容都被加载并运行,你可以让子程序定期检查命名管道的存在(让我们说每5秒钟一次,以免CPU过载),一旦创建,就开始使用它。
注意:它仍然看起来像一个无限的“循环,直到它成功”但我没有看到任何错误,因为你做得恰当,说,你用非运行它阻止机制。
注意:它不一定意味着多进程技术。你可以设想一个带有定期检查的主循环(不是每次迭代)。