1
我有下面的代碼控制檯應用程序:
static void Main(string[] args)
{
// Some code.
Console.WriteLine("Done");
Console.ReadLine();
}
的成功構建應用程序,並 「將Test.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」是否正在等待當前進程中的輸入?
http://stackoverflow.com/q/40421394/1132334的副本,但這還沒有回答 – dlatikay
您可以只查找完成消息,是嗎? – itsme86
http://stackoverflow.com/a/14510536/1132334:在這種情況下調查'ThreadWaitReason'可能值得一試 – dlatikay