2

私の C# プログラムは、標準入力を介してサードパーティ プログラムにデータを送信する必要があります。ただし、プログラムは入力ストリームが EOF に達するのを待ってから処理します。ここに私のコード:

// Starts the process.
var process = new Process();
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.FileName = "foo.exe";
process.Start();

// Sends data to child process.
var input = process.StandardInput;
input.WriteLine("eval('2 * PI')");
input.Flush();
input.Close();

// Reads the result.
var output = process.StandardOutput;
var result = output.ReadLine();

子プログラムは何もせず、私の C# コードはoutput.ReadLine()呼び出し時に動かなくなります。ただし、C# プロセスを強制終了すると、子は送信したデータを正確に処理し始めます。私がまだ生きている間に子供に EOF を発生させるにはどうすればよいですか?

4

1 に答える 1