输出重定向 - 在过程结束时打印输出

时间:2014-02-13 07:41:17

标签: c# c++ process io-redirection output-redirect

我编写了一个C++控制台应用程序,它(使用常规printf调用)将消息打印到控制台。

此外,我编写了一个C#控制台应用程序,它运行C++应用程序的多个实例。

我正在尝试(用于其他应用程序)将C++应用程序的输出从C#应用程序重定向到控制台。

这是我的C#应用程序代码:

    private static  void OutputRedirection(object sendingProcess, DataReceivedEventArgs outLine)
    {
        try
        {
            if (outLine.Data != null)
                Console.WriteLine(outLine.Data);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

    private static void RunAPP()
    {
        var newProcess = new Process();
        newProcess.StartInfo.FileName = m_baseDir + @"\" + m_myApp;
        newProcess.StartInfo.WorkingDirectory = m_baseDir;
        newProcess.StartInfo.UseShellExecute = false;
        newProcess.StartInfo.RedirectStandardOutput = true;
        newProcess.OutputDataReceived += OutputRedirection;
        newProcess.Start();
        newProcess.BeginOutputReadLine();
    }

但是,当我这样做时,我只能在进程终止时看到重定向的输出(意味着C++应用程序已完成运行。

有没有办法让输出重定向到Real-Time - 这意味着在C++应用程序触发它的那一刻输出将被打印到控制台?

0 个答案:

没有答案