C# でのプロセス間通信の合理化: 匿名パイプを使用した非同期アプローチ
複数の C# プロセス間の効率的なデータ交換は、多くのアプリケーションにとって重要です。 匿名パイプは、非同期のイベント駆動型プロセス間通信 (IPC) のための軽量かつ堅牢なソリューションを提供します。
匿名パイプ通信を実装する方法は次のとおりです:
親プロセス:
パイプの作成:
<code class="language-csharp">PipeStream pipeStream = new AnonymousPipeServerStream(PipeDirection.Out);</code>
子プロセスの開始: パイプ ストリームを引数として子プロセスに渡します。
子プロセス:
パイプストリームの取得:
<code class="language-csharp">PipeStream pipeStream = (PipeStream)args[0];</code>
非同期通信:
<code class="language-csharp">byte[] buffer = new byte[1024]; pipeStream.BeginRead(buffer, 0, buffer.Length, (IAsyncResult asyncResult) => { int bytesRead = pipeStream.EndRead(asyncResult); // Process the received data }, null);</code>
親へのデータ送信:
<code class="language-csharp">byte[] data = Encoding.UTF8.GetBytes("Message from child process"); pipeStream.BeginWrite(data, 0, data.Length, (IAsyncResult asyncResult) => { pipeStream.EndWrite(asyncResult); }, null);</code>
匿名パイプを使用する利点:
PipeStream
クラスは、使いやすいインターフェイスを提供します。匿名パイプは、C# の非同期 IPC に強力で効率的なメカニズムを提供し、データ転送から分散システムに至るまでのさまざまなアプリケーションに最適です。そのシンプルさとリソース消費の低さにより、開発者にとって貴重な資産となります。
以上が匿名パイプを使用すると、C# の非同期プロセス間通信をどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。