0

我需要创建一个函数来从 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();
        }
    }
}
4

1 回答 1

0

如果没有特定错误,您将得到这是我对该问题的最佳猜测。

您正在创建一个成员变量private StreamWriter writer,然后尝试在static方法中访问它。尝试制作StreamWriter writer静态。

此外,您有一个try块,但没有catchor finally。要么try完全删除,要么使用块添加一些错误处理catch

最后一件事,我不确定你想要完全完成什么,但我强烈建议你添加一种方法来打破你的 while 循环。事实上,它保证是一个无限循环。

于 2011-03-13T07:53:38.323 回答