名前付きパイプをデモするシンプルな C# コンソール アプリケーション
名前付きパイプは、単一システム内でプロセス間通信 (IPC) のための堅牢な方法を提供します。 この例では、2 つのプロセスが名前付きパイプを使用してメッセージを交換する基本的な C# コンソール アプリケーションを示します。
アプリケーション構造
アプリケーションは 2 つのプログラムで構成されています。1 つはメッセージを送信して通信を開始し、もう 1 つは応答します。継続的なメッセージ交換のために両方が同時に実行されます。
コードの実装
次の C# コードは実装を示しています。
<code class="language-csharp">using System; using System.IO; using System.IO.Pipes; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleAppIPC { class Program { static void Main(string[] args) { // Initiate the server process StartServer(); Task.Delay(1000).Wait(); // Brief delay to ensure server is ready // Client-side connection and communication using (var client = new NamedPipeClientStream("PipesOfPiece")) { client.Connect(); using (var reader = new StreamReader(client)) using (var writer = new StreamWriter(client)) { while (true) { string input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; writer.WriteLine(input); writer.Flush(); Console.WriteLine(reader.ReadLine()); } } } } static void StartServer() { Task.Factory.StartNew(() => { using (var server = new NamedPipeServerStream("PipesOfPiece")) { server.WaitForConnection(); using (var reader = new StreamReader(server)) using (var writer = new StreamWriter(server)) { while (true) { string line = reader.ReadLine(); writer.WriteLine(string.Join("", line.Reverse())); writer.Flush(); } } } }); } } }</code>
操作の流れ
クライアントは名前付きパイプ「PipesOfPiece」に接続し、サーバーとの接続を確立します。 メッセージは StreamWriter
を介して送信され、StreamReader
を使用して受信されます。 この例では、サーバーは受信したメッセージを元に戻してからクライアントに送り返します。これは単純な通信パターンを示しています。 その後、クライアントは反転メッセージを表示します。
以上が名前付きパイプを使用すると、単純な C# コンソール アプリケーションでのプロセス間通信をどのように促進できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。