在函数外部使用StreamWriter或Stream

时间:2011-03-13 04:27:44

标签: c# process stream iostream streamwriter

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

1 个答案:

答案 0 :(得分:0)

如果没有您遇到的具体错误,这是我对此问题的最佳猜测。

您正在创建成员变量private StreamWriter writer,然后尝试在static方法中访问它。尝试将StreamWriter writer设为静态。

此外,您有try个阻止,但没有catchfinally。完全删除try或使用catch块添加一些错误处理。

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