我有一个创建为重叠的管道句柄。我需要并行读取和写入数据。我怎样才能做到这一点?
Named Pipe Server Using Overlapped I/O文档页面显示了如何读取和写入多个管道的示例,但“它避免了对单个管道实例的同时操作”。
在 Windows 上用 C++ 执行此操作的正确方法是什么?我无法提交正确的示例,也无法提供有关该主题的帮助。
当没有数据要读取并且最终我无法使用 WriteFile 写入时,我面临的主要问题是正常的 ReadFile 阻塞。我还没有找到任何方法可以告诉我是否有可以阅读的内容不会阻塞。据我了解,我需要传递 OVERLAPPED 结构,但不知道如何在并行读写一个管道(不是很多)的情况下使用它。
正如Synchronous and Overlapped Pipe I/O中所说,这应该是可能的:
重叠操作使一个管道可以同时读取和写入数据,并且单个线程可以在多个管道句柄上同时执行 I/O 操作。