我编写了一个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++
应用程序触发它的那一刻输出将被打印到控制台?