2

パイプから読み書きするためのプログラムを書いています。PeekNamedPipe 関数を使用すると、読み取る準備ができているバイト数を取得できることがわかりました。しかし、データが来るのをどのように待つことができるかという質問があります。WaitForSingleObject 関数を使用してパイプを待機し、パイプの反対側からデータを取得できますか? よろしく、

4

1 に答える 1

1

Overlapped I/O を使用するか、できればCompletion Routinesを使用できます。どちらも非同期 (ノンブロッキング) ですが、読み取るデータがあるときに呼び出されるコールバックを登録するので、完了ルーチンを好みます。データをポーリングする必要はありません。リンクをチェックして、サンプルをビルドして実行してください。理解/実装には少し時間がかかるかもしれませんが、うまく機能しているときに時間をかけて正しく実行できたことを嬉しく思います:)。

于 2013-11-05T10:41:41.840 に答える