プロセスの引数Process.Start の第2引数で送り、Main 関数の args 引数で受け取ります。
終了コードMain 関数の戻り値や、Environment.Exit、Environment.ExitCode で送り、Process.ExitCode で受け取ります。
標準入力Process. StandardInput.WriteLine() で送り、Console.ReadLine() で受け取ります。
プロセス開始時に RedirectStandardInput を true に、UseShellExecute を false に設定する必要があります。
標準出力Console.WriteLine() で送り、Process. StandardOutput.ReadLine() で受け取ります。
プロセス開始時に RedirectStandardOutput を true に、UseShellExecute を false に設定する必要があります。
ファイル一時ファイルを作成し、そこにデータを書き込んで、別の方法(引数等)でファイル名を渡します。
シンプルで分かりやすく、大容量データの交換も容易です。
gRPCリモートプロシージャコールの現在の標準です。gRPC over Named Pipes として組み合わせることで、
ローカル通信のオーバーヘッドを最小化しつつ、gRPCのプログラミングモデルを享受できます。
SignalRサーバーからクライアントへのプッシュ通知や、リアルタイムな双方向通信に特化したライブラリです。
大規模な分散コンピューティングを行いたいときに利用できます。
名前付きパイプNamedPipeServerStream、NamedPipeClientStream を使って送受信します。
同一マシン内で通信する場合、TCP/IPよりかなり高速です。
ネットワーク経由で他のコンピュータとも通信でき、メッセージ(パケット)形式もサポートしています。
匿名パイプAnonymousPipeServerStream、AnonymousPipeClientStream を使って送受信します。
親子プロセス間のみ、1対1、片方向、メッセージ形式非対応と、機能が少な目ですが、
名前付きパイプより軽量(高速)で、他のプロセスからアクセスされないため、
セキュリティ面を気にしなくて良いと言う利点があります。
TCP/IPソケット通信ネットワーク経由でストリーム通信したい場合に適しています。
共有メモリ同一マシン・プロセス間で大量のデータを共有する場合に適しています。
メモリコピーが発生しないため最速の方法です。