您正在创建一个执行其他Windows控制台应用程序的控制台应用程序。
有时应用程序永远不会结束它的执行,如果超过一个时间,我需要强行杀死它。当应用程序被强制终止时,我无法获得应用程序的输出。
有一种方法可以在杀死正在运行的进程之前获取输出,以便写入文件或在杀死文件后获取它?
Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = "robocopy.exe";
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.Arguments = parameters;
process.Start();
//set the maximum allowed time in which the robocopy lives
if (process.WaitForExit(15000))
{
logInfo = process.StandardOutput.ReadToEnd();
//do something else
}
else
{
process.Kill();
logInfo = process.StandardOutput.ReadToEnd();
//write the output to a file
}