Tuesday 10 October 2017

Waitforexit Processstartinfo


Elina: Danke für deine Antwort. Es gibt einige Notizen am unteren Rand dieses MSDN-Dokuments (msdn. microsoften-uslibraryhellip), die über potenzielle Deadlocks warnen, wenn Sie bis zum Ende der beiden umgeleiteten Stdout - und Stderr-Ströme synchron lesen. Es ist schwer zu sagen, ob Ihre Lösung anfällig für dieses Problem ist. Außerdem scheint es, dass du die process39 stdoutstderr Ausgabe direkt als Eingang sendest. Warum. ) Ndash Matthew Piatt Sep 26 16 at 4:42 Dies ist eine modernere, aufwartende, Task Parallel Library (TPL) basierte Lösung für 4.5 und höher. Usage Beispiel Implementierung beantwortet 5. Oktober 16 um 10:54 Ich Ding, dass dies ist einfach und besser Ansatz (wir brauchen nicht AutoResetEvent) Antwort # 2 am: Mai 18, 2010, 07:13:13 am »True, aber shouldn39t Sie tun. FileName Pfad quotggsci. exequot quot lt Obeycommand. txtquot, um Ihren Code zu vereinfachen oder vielleicht etwas gleichbedeutend mit quotecho Befehl path quotggsci. exequot wenn Sie wirklich don39t wollen eine separate obeycommand. txt Datei verwenden. Ndash Amit Naidu Jun 3 13 at 22:03 Deine Lösung braucht nicht AutoResetEvent, aber du zählst. Wenn du anstelle von Event-Event (wenn sie verfügbar sind), dann sind Sie mit CPU ohne Grund und das deuten darauf hin, dass Sie ein schlechter Programmierer sind. Ihre Lösung ist wirklich schlecht, wenn mit dem anderen mit AutoResetEvent verglichen. (Aber ich habe dir nicht gegeben, weil du versucht hast zu helfen). Ndash Eric Ouellet Nov 7 14 at 18:38 Ich hatte das gleiche Problem, aber der Grund war anders. Es würde aber unter Windows 8 passieren, aber nicht unter Windows 7. Die folgende Zeile scheint das Problem verursacht zu haben. Die Lösung bestand darin, UseShellExecute NICHT zu deaktivieren. Ich habe jetzt ein Shell Popup-Fenster, das ist unerwünscht, aber viel besser als das Programm wartet auf nichts Besonderes passieren. So fügte ich das folgende Work-around hinzu: Jetzt das einzige, was mich stört, ist, warum dies geschieht unter Windows 8 an erster Stelle. Antwortete 13. Januar 15 um 10:35 Ich habe versucht, eine Klasse, die Ihr Problem mit asynchronen Stream zu lösen, zu lesen, indem Sie in Rechnung Mark Byers, Rob, stevejay Antworten zu machen. So erkannte ich, dass es einen Fehler gibt, der mit dem asynchronen Prozessausgangsstrom verknüpft ist. Du kannst das nicht tun: Du erhältst System. InvalidOperationException. StandardOut wurde nicht umgeleitet oder der Prozess hat noch nicht begonnen. Dann müssen Sie die asynchrone Ausgabe starten, nachdem der Prozess gestartet wurde: So machen Sie eine Racebedingung, da der Ausgabestream Daten empfangen kann, bevor Sie ihn auf asynchron einstellen: Dann könnten einige Leute sagen, dass Sie nur den Stream vor Ihnen lesen müssen Setze es asynchron an. Aber das gleiche Problem tritt auf. Es wird eine Race-Bedingung zwischen dem synchronen Lesen und setzen den Stream in den asynchronen Modus. Es gibt keinen Weg, um sicheres asynchrones Lesen eines Ausgabestreams eines Prozesses in der tatsächlichen Weise zu bewirken, dass Process und ProcessStartInfo entworfen wurden. Sie sind wahrscheinlich besser mit asynchronen lesen wie vorgeschlagen von anderen Benutzern für Ihren Fall. Aber Sie sollten sich bewusst sein, dass Sie einige Informationen wegen Race condition. Im Login auf Remote-Linux-Maschine mit Hilfe von Kitt verpassen könnte. ProcessStartInfo pInfo new ProcessStartInfo () pInfo. Argumente quot-ssh prateek10.202.167.34 - pw passwordquot pInfo. FileName quotC: UsersprateekDesktopPUTTY. EXEquot Prozess p neu Prozess () p. StartInfo pInfo Nach dieser Kitt Session starten, dann muss ich mich anmelden als SuperUser (webAdmin) und geben Passwort. Wie kann ich sowohl Benutzername als auch Passwort in pInfo. Arguments nach dem Login als prateek (userName) vorstellen oder ändern. Montag, 01. Oktober 2012 13:18 Hallo, du musst die StandardInput - und StandardOutput-Streams verwenden, um Inhalte zu lesen und zu schreiben: Hope this helps, Vorgeschlagen als Antwort von Jason Dot Wang Microsoft Kontingent Mitarbeiter Mittwoch, 03. Oktober 2012 5:55 AM Als Antwort von Jason Dot markiert Wang Microsoft Kontingent Mitarbeiter Mittwoch, 10. Oktober 2012 um 13:25 Uhr Hallo, als Beispiel für die Interaktion mit Inputoutputerror in Konsolen-Anwendungen können Sie Benutze den folgenden Code: Hoffe, das hilft dir und wenn du noch Zweifel hast, lass es mich wissen. Als Antwort von PrateekThakur markiert Mittwoch, den 02. Oktober 2012 um 05:25 Uhr Alle Antworten Hallo, du musst die StandardInput - und StandardOutput-Streams verwenden, um Inhalte zu lesen und zu schreiben: Hope this helps , Vorgeschlagen als Antwort von Jason Dot Wang Microsoft Kontingent Mitarbeiter Mittwoch, Oktober 03, 2012 5:55 AM Markiert als Antwort von Jason Dot Wang Microsoft Kontingent Mitarbeiter Mittwoch, 10. Oktober 2012 02:44 Montag, 01. Oktober 2012 1:25 PM Ein Problem ist, dass, wenn ich Passwort in separaten Zeile, es ist nicht akzeptieren, es ist immer noch Eingabe für Passwort in der Konsole. Prozess p neu Prozess () p. StartInfo pInfo p. StartInfo. UseShellExecute false p. StartInfo. RedirectStandardInput true StreamWriter myStreamWriter p. StandardInput myStreamWriter. WriteLine (quotsudo su - webadminquot) myStreamWriter. WriteLine (quotpasswordquot) In welcher Weise können wir Passwort mit StandardIn Vielen Dank für Ihre Hilfe. Montag, 01. Oktober 2012 14:20 Hallo, zuerst kannst du den StandardOutput lesen, um den Text zu erhalten quotPassword: quot, dann weißt du, dass die Anwendung bereit ist, das Passwort zu lesen. Danach verwenden Sie den Standardeintrag, um das Passwort zu schreiben. Montag, Oktober 01, 2012 2:27 PM Das Problem ist, wenn ich RedirectStandardOutput auf true setzen, führt es nicht den Prozess bis zum Ende, es dazwischen wie zum Beispiel: pInfo. Arguments quot-ssh prateek10.202.104.20 - pw passwordquot pInfo. FileName quotC: UsersprateekDesktopPLINK. EXEquot Prozess p neu Prozess () 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 Quot-ssh prateek10.202.104.20 - pw passwordquot pInfo. FileName quotC: UsersprateekDesktopPLINK. EXEquot Prozess p neu 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: Text, wenn dieser Prozess dazwischen für unbestimmte Zeit anhält

No comments:

Post a Comment