C# “;StandardIn尚未重定向”;在.Net中
你好! 我知道这个问题: 但这对我不起作用 所以我这样做: 1.运行控制台应用程序 2.在此应用程序中运行线程(启动另一个控制台应用程序):App2 输入参数为:C# “;StandardIn尚未重定向”;在.Net中,c#,process,streamwriter,C#,Process,Streamwriter,你好! 我知道这个问题: 但这对我不起作用 所以我这样做: 1.运行控制台应用程序 2.在此应用程序中运行线程(启动另一个控制台应用程序):App2 输入参数为: var ps = new ProcessStartInfo(); ps.FileName = "something filepath"; ps.Arguments = arrgs; ps.RedirectStandardOutput = false; ps
var ps = new ProcessStartInfo();
ps.FileName = "something filepath";
ps.Arguments = arrgs;
ps.RedirectStandardOutput = false;
ps.UseShellExecute = false;
ps.RedirectStandardInput = true;
var p = Process.Start(ps);
App2运行并工作。因此,我必须正确关闭此程序-设置为这2个字
停止此进程(App2):
但我在使用时遇到了异常“StandardIn未被重定向”。
同时,App2正确停止并等待Cntrl-C或任意两个字(关闭控制台)
然后,我删除这行代码:
using (StreamWriter sr = p.StandardInput)
{
sr.WriteLine("word1");
sr.WriteLine("word2");
sr.Close();
}
然后-App2正确关闭
那么,为什么要把StreamWriter放在p.StandartInput上呢
谢谢大家! 我也有同样的麻烦。。。当我检查pid.StartInfo.RedirectStandardInput是否为false时,似乎get进程“Not catch RedirectInput value”:s。代码没有什么意义。您已经有了一个流程引用,即
p
变量。为什么要用Process.GetProcessById()找到它?我想,将来我会运行两个或更多的应用程序,我应该杀了他。
using (StreamWriter sr = p.StandardInput)
{
sr.WriteLine("word1");
sr.WriteLine("word2");
sr.Close();
}