gpt4 book ai didi

C# - 关闭子进程的输入流

转载 作者:可可西里 更新时间:2023-11-01 10:25:40 26 4
gpt4 key购买 nike

我的 C# 程序需要通过其标准输入将数据发送到第 3 方程序。然而,程序在处理之前等待输入流到达 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# 进程,那么子进程就会开始准确地处理我发送的数据。如何让 child 在我还活着的时候遇到EOF?

最佳答案

StreamWriter 在关闭流时可能不会发送实际的 eof。您可以尝试在关闭流之前将您自己的内容写入流。这样的事情可能会起作用:

input.Write((char)26);

您可能必须找出进程对 eof 的期望。

关于C# - 关闭子进程的输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19284691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com