3
我得到了下面的代码如何在一段时间后强制关闭c#中的进程?
System.Diagnostics.Process capp = new System.Diagnostics.Process();
capp.StartInfo.UseShellExecute = false;
capp.StartInfo.RedirectStandardOutput = true;
capp.StartInfo.RedirectStandardError = true;
capp.EnableRaisingEvents = false;
capp.StartInfo.FileName = "app.exe";
capp.StartInfo.Arguments = "-i -v -mj";
capp.Start();
consoleOutput = capp.StandardOutput.ReadToEnd() + capp.StandardError.ReadToEnd();
if (!capp.WaitForExit(10000)) capp.Kill();
和问题,如果外部的应用程序正常工作只需不到10秒就完成了任务。如果由于某种原因停止/挂起,尽管使用了
if (!capp.WaitForExit(10000)) capp.Kill();
正如其他主题中所建议的那样,它会继续工作。上面的行似乎根本不工作在我的情况下,我想它必须与事实我读StandardOutput和StandardError。如何修复我的代码,使读取输出和WaitForExit()一起工作?
这工作非常好!谢谢! – MoreThanChaos