杀死进程并获取输出c#

时间:2016-10-24 06:36:47

标签: c# outputstream kill-process

您正在创建一个执行其他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

                 }

0 个答案:

没有答案