我需要创建一个函数来从process.StandardInput向Stream发送命令。我有一个错误,作家没有被初始化。我该如何解决这个问题?
private StreamWriter writer;
private static void SendProcessCmd(string cmd)
{
writer.WriteLine(cmd);
}
public static void CreateProcess()
{
ProcessStartInfo processInfo = new ProcessStartInfo("java.exe", args);
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardInput = true;
try
{
using (Process process = Process.Start(processInfo))
{
writer = new StreamWriter(process.StandardInput.BaseStream);
//writer = process.StandardInput;
while (true)
{
String strInput = Console.ReadLine();
writer.WriteLine(strInput);
}
process.WaitForExit();
}
}
}
答案 0 :(得分:0)
如果没有您遇到的具体错误,这是我对此问题的最佳猜测。
您正在创建成员变量private StreamWriter writer
,然后尝试在static
方法中访问它。尝试将StreamWriter writer
设为静态。
此外,您有try
个阻止,但没有catch
或finally
。完全删除try
或使用catch
块添加一些错误处理。
最后一件事,我不确定你要完全完成什么,但我强烈建议你添加一种方法来打破你的while循环。实际上,它保证是一个无限循环。