C# “;StandardIn尚未重定向”;在.Net中

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

你好! 我知道这个问题:

但这对我不起作用

所以我这样做: 1.运行控制台应用程序 2.在此应用程序中运行线程(启动另一个控制台应用程序):App2 输入参数为:

        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();
            }