我有以下代码在另一台服务器上运行良好.问题是该过程似乎永远不会使其进入退出状态.被调用的exe创建了一个文件作为最后一步,这个文件确实被创建了,但我的代码似乎永远不知道该进程已经完成.当手动运行时,被调用的exe也会在不到10秒的时间内运行.我的代码看起来像这样:
System.Diagnostics.Process proc = new System.Diagnostics.Process() proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = exeConf.CMD;
proc.StartInfo.Arguments = argString;
proc.Start();
proc.WaitForExit(10000);
if(proc.HasExited)
msgLine = proc.StandardError.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
似乎Process.StandardOutput.ReadToEnd()必须在之后立即调用,Process.Start()否则可能会造成死锁。
| 归档时间: |
|
| 查看次数: |
2575 次 |
| 最近记录: |