【发布时间】:2009-09-25 16:15:27
【问题描述】:
我read这部分代码可能会导致死锁:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "Write500Lines.exe";
p.Start();
p.WaitForExit();
string output = p.StandardOutput.ReadToEnd();
因为
如果发生死锁情况,可能会导致 父进程调用
p.WaitForExit在p.StandardOutput.ReadToEnd之前和 子进程写入足够的文本 填充重定向的流。这 父进程将无限期等待 让子进程退出。这 子进程将无限期等待 让家长阅读全文 标准输出流。
但我不太明白为什么。我的意思是,在这种情况下,父进程是什么,子进程是什么?
【问题讨论】: