gpt4 book ai didi

c# - 重定向输出时 ResGen.exe 卡住

转载 作者:行者123 更新时间:2023-11-30 14:40:23 27 4
gpt4 key购买 nike

我尝试重定向 ResGen.exe 的标准输出。我使用以下代码

ProcessStartInfo psi = new ProcessStartInfo( "resxGen.exe" );
psi.CreateNoWindow = true;
psi.Arguments = sb.ToString();
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
Process p = Process.Start( psi );
p.WaitForExit();
StreamReader sr = p.StandardOutput;
string message = p.StandardOutput.ReadToEnd();

它停留在 p.WaitForExit 上。当我关闭输出流重定向并且不读取 StandardOutput 时,它可以正常工作。

我做错了什么?

最佳答案

您需要在读取流后等待进程结束,否则您的代码会出现死锁。问题是您的父进程正在阻塞等待子进程完成,而子进程正在等待父进程读取输出,因此您遇到了死锁。

Here是对问题的良好而详细的描述。

像这样更改代码应该可以避免死锁:

StreamReader sr = p.StandardOutput;
string message = p.StandardOutput.ReadToEnd();
p.WaitForExit();

关于c# - 重定向输出时 ResGen.exe 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com