Process redirect StdOut und StdErr Debug -> nicht Debug ???



  • Hallo,
    ich starte einen Process mit Process.Start(...) und habe zwei threads, die die streams lesen und in eine Textbox schreiben.

    while ((line = reader.ReadLine()) != null)
    {
       myTxt.Text += line;
    }
    

    reader ist jeweils
    myProcess.StandardOutput bzw. myProcess.StandardError

    Wenn ich das Programm nun im Debugmodus(nur F5 im Studio) starte funktioniert es. Aber wenn ich es mit Strg+F5 oder direkt starte blockiert reader.ReadLine().
    Hat jemand eine Idee woran das liegen könnte?



  • Haste mal das Beispiel ausprobiert, daß in der MSDN-Hilfe steht (wenn Du nach Process.StandardOutput suchst)?

    Was auch sein könnte: im Debugmodus kann der gestartete Prozess ja (aus Zeitgründen) schon was zurückliefern. Wenn Du's voll durchlaufen läßt, ist der Prozess vielleicht noch gar nicht angelaufen bzw. hat noch nichts zurückliefern können und Deine Bedingung in while() trifft nicht zu und somit is die Schleife fertig....



  • Evtl ist es auch ein Deadlock

    sprich ReadLine() kann nicht darauf zugreifen, weil myProcess.StandardOutput bzw. myProcess.StandardError darauf zugreifen, während beim debug-modus ja jede menge zeit verstreicht und die ressource dann eben frei ist


Anmelden zum Antworten