我正在运行driverquery.exe命令和回来的输出中的程序
pProcess.StartInfo.CreateNoWindow = true;
debugLog.WriteToLog("");
pProcess.StartInfo.UseShellExecute = false;
pProcess.StartInfo.RedirectStandardOutput = true;
pProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
debugLog.WriteToLog("before start method");
pProcess.Start();
debugLog.WriteToLog("after start method");
if (windowTitleToHide.Length > 0)
{
WindowsUtil.HideWindow(windowTitleToHide);
}
if (null != attributeName && !"".Equals(attributeName))
Console.WriteLine(attributeName + " : ");
debugLog.WriteToLog("before read to end");
StreamReader reader = pProcess.StandardOutput;
String strOutput = string.Empty;
while (reader.Peek() > -1)
strOutput += reader.ReadLine();
debugLog.WriteToLog("after read to end");
Console.WriteLine(strOutput);
debugLog.WriteToLog("before wait for exit");
pProcess.WaitForExit();
debugLog.WriteToLog("after wait for exit");
pProcess.Close();
该过程需要约30分钟至finish.If我运行经由CMD它总是在2分钟内完成相同的处理。 我一直在使用ReadToEnd的,而不是尝试过的ReadLine但也没有帮助。 可有些分不清什么是错在这里? 在我的日志,我可以看到的最后一行得到打印为等待退出前
PS:当我在任务管理器看到进程driverquery.exe正在运行,但不消耗任何CPU周期。 调用此代码的过程耗时约99%的CPU。 我知道肯定调用代码是没有做任何其他的任务,同时运行这段代码。