Tuesday 7 November 2017

Beginoutputreadline Waitforexit C #


Elina: Danke für deine Antwort. Es gibt einige Notizen am unteren Rand dieses MSDN-Dokuments (msdn. microsoften-uslibraryhellip), die vor potenziellen Deadlocks warnen, wenn Sie das Ende der beiden umgeleiteten Stdout - und Stderr-Streams synchron lesen. Es ist schwer zu sagen, ob Ihre Lösung anfällig für dieses Problem ist. Auch scheint es, dass Sie den Prozess39 stdoutstderr Ausgang rechts zurück als Eingang senden. Warum. ) Ndash Matthew Piatt Dies ist eine moderne, TPL-basierte Lösung (Task Parallel Library, TPL) basierte Lösung für 4.5 und höher. Antwort # 2 am: Juli 12, 2010, 07:10:13 am »Ich Sache, dass dies ist einfach und besser Ansatz (wir brauchen nicht AutoResetEvent): Antwort # 2 am: Mai 12, 2010, 10:12:13 pm» True, aber shouldn39t Sie tun. FileName Pfad quotggsci. exequot lt Obeycommand. txtquot, um Ihren Code zu zu vereinfachen Oder vielleicht etwas gleichbedeutend mit quotecho Befehl quotieren Pfad quotggsci. exequot, wenn Sie wirklich don39t eine separate obeycommand. txt-Datei verwenden möchten. Ndash Amit Naidu Ihre Lösung braucht nicht AutoResetEvent aber Sie Umfrage. Wenn Sie statt der Verwendung von Ereignis (wenn sie verfügbar sind) abstimmen, dann verwenden Sie CPU ohne Grund und dass Sie sind ein schlechter Programmierer. Ihre Lösung ist wirklich schlecht, wenn die anderen mit AutoResetEvent verglichen werden. (Aber ich habe dir nicht gegeben, weil du versucht hast zu helfen). Ndash Eric Ouellet Ich war mit dem gleichen Problem, aber der Grund war anders. Es würde jedoch unter Windows 8, aber nicht unter Windows 7 auftreten. Die folgende Zeile scheint das Problem verursacht haben. Die Lösung war, NICHT deaktivieren UseShellExecute. Ich erhielt nun ein Shell-Popup-Fenster, das unerwünscht ist, aber viel besser als das Programm wartet auf nichts Besonderes passieren. So fügte ich die folgenden Work-around für das: Jetzt ist das einzige, was mich stört, warum dies geschieht unter Windows 8 an erster Stelle. Ich habe versucht, eine Klasse, die Ihr Problem mit Hilfe von asynchronen Stream zu lösen, indem Sie in Konto Mark Byers, Rob, stevejay Antworten lösen würde. Dabei erkannte ich, dass es einen Fehler im Zusammenhang mit asynchrone Prozess-Ausgabe-Stream zu lesen. Sie können das nicht tun: Sie erhalten System. InvalidOperationException. StandardOut wurde nicht weitergeleitet oder der Prozess hat noch nicht begonnen. Danach müssen Sie die asynchrone Ausgabe starten, die nach dem Start des Prozesses gelesen wird. Führen Sie deshalb eine Racebedingung aus, da der Ausgabestream Daten empfangen kann, bevor Sie ihn auf asynchron setzen. Dann könnten einige Leute sagen, dass Sie nur den Stream vor Ihnen lesen müssen Setzen Sie es auf asynchron. Aber das gleiche Problem tritt auf. Es wird eine Racebedingung zwischen dem synchronen Lesen und dem Setzen des Streams in den asynchronen Modus geben. Es gibt keine Möglichkeit, das sichere asynchrone Lesen eines Ausgabestreams eines Prozesses in der eigentlichen Weise zu erledigen. Process und ProcessStartInfo wurden entworfen. Sie sind wahrscheinlich besser mit asynchronen Lesen wie von anderen Benutzern für Ihren Fall vorgeschlagen. Aber Sie sollten sich bewusst sein, dass Sie einige Informationen aufgrund Rasse Bedingung verpassen könnte. Im Login auf remote linux Maschine mit Hilfe von Kitt. ProcessStartInfo pInfo new ProcessStartInfo () pInfo. Argumente quot-ssh prateek10.202.167.34 - pw Kennwortquot pInfo. FileName quotC: UsersprateekDesktopPUTTY. EXEquot Prozess p new Prozess () p. StartInfo pInfo Nach dem Start dieser Konditionssitzung muss ich mich dann anmelden SuperUser (webAdmin) und geben Passwort. Wie kann ich sowohl UserName als auch Passwort in pInfo. Arguments nach Login als prateek (userName) bereitstellen oder ändern. Hallo, Sie müssen die StandardInput und StandardOutput Streams verwenden, um zu lesen und zu schreiben Inhalt in den Prozess: Hope this helps, vorgeschlagen als Antwort von Jason Dot Wang Microsoft Kontingent Mitarbeiter Mittwoch, 03. Oktober 2012 5:55 AM Als Antwort markiert von Jason Dot Wang Microsoft Kontingent Mitarbeiter Mittwoch, 10. Oktober 2012 01.25 Uhr Hallo, als ein Beispiel, wie man mit inputoutputerror in Konsolen-Anwendungen interagieren können Verwenden Sie den folgenden Code: Hoffe, dies hilft Ihnen und wenn Sie immer noch Zweifel lassen Sie mich wissen. Hallo, Sie müssen die StandardInput und StandardOutput Streams verwenden, um den Inhalt zu lesen und zu schreiben: Hope this helps , Vorgeschlagen als Antwort von Jason Dot Wang Microsoft Kontingent Mitarbeiter Mittwoch, 3. Oktober 2012 05.55 Uhr Als Antwort von Jason Dot Wang Microsoft Kontingent Mitarbeiter Mittwoch, 10. Oktober 2012 01.25 Uhr PM Ein Problem ist, dass, wenn ich Passwort in separaten Zeile geben, ist es nicht akzeptieren, es ist immer noch für das Passwort in der Konsole fordert. Prozess p new Prozess () p. StartInfo pInfo p. StartInfo. UseShellExecute false p. StartInfo. RedirectStandardInput true StreamWriter myStreamWriter p. StandardInput myStreamWriter. WriteLine (quotsudo su - webadminquot) myStreamWriter. WriteLine (quotpasswordquot) Auf welche Weise können wir mit Passwort versehen StandardIn Dank für Ihre Hilfe. Hallo, zuerst können Sie den StandardOutput lesen, um den Text quotPassword: quot zu erhalten, dann wissen Sie, dass die Anwendung bereit ist, das Kennwort zu lesen. Verwenden Sie danach das StandardInput, um das Kennwort zu schreiben. Das Problem ist, wenn ich RedirectStandardOutput auf true gesetzt, führt es nicht den Prozess bis zum Ende, es in zwischen wie zum Beispiel: pInfo. Arguments quot-ssh prateek10.202.104.20 - pw passwordquot pInfo. FileName quotC: UsersprateekDesktopPLINK. EXEquot Prozess p new Process () p. StartInfo pInfo p. StartInfo. UseShellExecute false p. StartInfo. RedirectStandardInput true p. StandardInput. WriteLine (quotsudo su - webadminquot) Aber wenn RedirectStandardOutput auf true, dh pInfo. Arguments Ssh prateek10.202.104.20 - pw passwordquot pInfo. FileName quotC: UserprateekDesktopPLINK. EXEquot Prozess p new Prozess () p. StartInfo pInfo p. StartInfo. UseShellExecute false p. StartInfo. RedirectStandardInput true p. StandardInput. WriteLine (quotsudo su - Webadminquot) Das wartet auf unbestimmte Zeit. Also, wie bekomme ich quotPassword: quot Text, wenn dieser Prozess ist in der Zwischenzeit für unbestimmte Zeit

No comments:

Post a Comment