广州网站定做教程,河北哪些大学网站建设专业比较好,兰州网站制作联系方式,嘉兴营销型网站建设尝试了一下用C#运行一个控制台程序#xff0c;希望获取输出并在适当的时候输入#xff0c;看起来挺简单#xff0c;不过实际使用发现只能让程序一次性执行完毕并获取输出#xff08;并没有仔细尝试各种方式#xff09;。 代码很简单#xff1a; private void Test(){Proc… 尝试了一下用C#运行一个控制台程序希望获取输出并在适当的时候输入看起来挺简单不过实际使用发现只能让程序一次性执行完毕并获取输出并没有仔细尝试各种方式。 代码很简单 private void Test(){Process process new Process();process.StartInfo.FileName app.exe;process.StartInfo.UseShellExecute false; // 必须设置为false以重定向输出process.StartInfo.RedirectStandardOutput true; // 允许重定向标准输出process.StartInfo.RedirectStandardInput true; // 允许重定向标准输入//process.StartInfo.CreateNoWindow true; // 如果你不想显示命令行窗口process.Start();Thread processOutput new Thread(() {while (true){Thread.Sleep(1000);string? line process.StandardOutput.ReadLine();//注意这一句会导致被调用的程序无法继续执行没有任何输出卡在这里//但是如果程序不需要输入只是很快地输出信息就结束这里是正常得到输出的//所以被调用程序需要改成只输出无交互的if (null line) break;MessageBox.Show(line);}process.WaitForExit();MessageBox.Show(进程已退出);});processOutput.IsBackground true;processOutput.Start();}我同时重定向了输入输出会不会有影响不知道没有测试。 如果app.exe只是输出信息然后关闭那么程序就是正常的消息框会逐一弹出每一行输出但是如果程序是输出信息之后等待输入则程序什么都不输出C#程序也卡住。 因为这个程序很简单功能是列举网卡然后输入一个选择然后对网卡操作所以可以把程序拆为两部分不带参数则列举网卡带参数则对指定的网卡操作这样就不需要输入了。 虽然可以变通但是仍然不爽。暂时不着急解决以后再说吧。 这里是结束