检测控制台.读取行()



以下场景:

我有一个带有以下代码的控制台应用程序:

static void Main(string[] args)
{
      // Some code.
      Console.WriteLine("Done");
      Console.ReadLine();
}

应用程序已成功构建并生成"测试.exe"。

现在我有另一个控制台应用程序来执行生成的 exe。

static void Main(string[] args)
        {
            var processStartInfo = new ProcessStartInfo("Test.exe")
            {
                UseShellExecute = false,
                RedirectStandardOutput = true
            };
        // Setup the process
        process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
        process.OutputDataReceived += ProcessOnOutputDataReceived;
        process.Start();
        process.BeginOutputReadLine();
        // Detect here if application is completed.
        }
        Console.ReadLine();
    }
    private static void ProcessOnOutputDataReceived(object sender, DataReceivedEventArgs dataReceivedEventArgs)
    {
        Console.WriteLine(dataReceivedEventArgs.Data);
    }

当我执行上面的代码时,它调用"Test.exe","Test.exe"的输出显示在当前进程的控制台窗口中。

"Test.exe"等待"Console.ReadLine(("的输入,当前进程等待"Test.exe"完成。

是否可以检测"Test.exe"是否正在等待当前进程中的输入?

有没有办法同步调用OutputReadLine((? 如果是,那么您的应用程序将阻塞,直到测试.exe完成,然后才会执行下一行代码。 无需检查。

相关内容

  • 没有找到相关文章

最新更新