Note that there are some explanatory texts on larger screens.

plurals
  1. POStandardOutput.ReadToEnd() hangs
    text
    copied!<p>I have a program that frequently uses an external program and reads its outputs. It works pretty well using your usual process redirect output, but one specific argument for some reason hangs when I try to read it, no error message - no exception, it just 'stops' when it reaches that line. I of course use a centralized function to call and read output from the program, which is this:</p> <pre><code>public string ADBShell(string adbInput) { try { //Create Empty values string result = string.Empty; string error = string.Empty; string output = string.Empty; System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(toolPath + "adb.exe"); procStartInfo.Arguments = adbInput; procStartInfo.RedirectStandardOutput = true; procStartInfo.RedirectStandardError = true; procStartInfo.UseShellExecute = false; procStartInfo.CreateNoWindow = true; procStartInfo.WorkingDirectory = toolPath; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo = procStartInfo; proc.Start(); // Get the output into a string proc.WaitForExit(); result = proc.StandardOutput.ReadToEnd(); error = proc.StandardError.ReadToEnd(); //Some ADB outputs use this if (result.Length &gt; 1) { output += result; } if (error.Length &gt; 1) { output += error; } Return output; } catch (Exception objException) { throw objException; } } </code></pre> <p>The line that hangs is <code>result = proc.StandardOutput.ReadToEnd();</code>, but again, not every time, only when sent a specific argument ("start-server"). All other arguments work just fine - it reads the value and returns it. It's also strange the way it hangs. It doesn't freeze or give an error or anything, it just stops processing. As if it was a 'return' command, except it doesn't even return to the calling function, it just stops everything with the interface still up and running. Anyone experienced this before? Anyone have any idea what I should try? I'm assuming it's something unexpected within the stream itself, but is there a way I can handle/ignore this so that it reads it anyway?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload