- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试重定向 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/
我有一台 VM 机器,我在其中复制了 SDK 文件和路径,转到注册表并将 key 添加到注册表,但我一直收到无法找到 resgen.exe 的错误: C:\Windows\Microsoft.NET\
我有一台 VM 机器,我在其中复制了 SDK 文件和路径,转到注册表并将 key 添加到注册表,但我一直收到无法找到 resgen.exe 的错误: C:\Windows\Microsoft.NET\
我尝试重定向 ResGen.exe 的标准输出。我使用以下代码 ProcessStartInfo psi = new ProcessStartInfo( "resxGen.exe" ); psi.Cr
我只是尝试使用 resgen 运行 NANT,但我似乎找不到需要下载的内容才能在“C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0”中使用它。我的
所以,我刚刚下载了 VS 2010 Beta 2,当我尝试使用多个资源文件构建我的类库之一时,出现错误: “无法运行指定的任务可执行文件“ResGen.exe”。文件名或扩展名太长” 在此之前,我收到
在 64 位 Windows 7 计算机上,我安装了 .Net Framework 4.5.1 和 Windows SDK for Windows 8.1 http://msdn.microsoft.
我正在尝试在 Windows 7 x64 中编译 VS2012 制作的项目。 尝试在使用 MsBuild 4.0 安装了 Windows 7 x86 和 .Net Framework 4.0 的虚拟机
我一直在使用 C# 和 .NET 4.5 的 Windows 窗体应用程序中使用 resgen.exe 生成一个 StronglyTypedClass 文件 根据语法,我可以将 StringResou
我是一名优秀的程序员,十分优秀!