Windowstyle Processstartinfo Waitforexit


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 zu machen, die dein Problem mit asynchronem Stream lösen würde, indem du in Berücksichtigung von Mark Byers, Rob, stevejay antwortet. 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 du solltest dir bewusst sein, dass du wegen der Rennbedingung einige Informationen verpassen könntest. Ich habe auf verschiedene Threads hingewiesen, aber alle von ihnen verwenden den Process. RedirectStandardOutput True, was ich nicht tue. Ich versuche, einen Prozess zu öffnen (Konsolenanwendung, nicht von mir gemacht), um es zu kompilieren eine spezielle. acs-Datei zu einer. o-Datei. Die Struktur ist einfach, das einzige Argument ist die Datei, die Sie kompilieren möchten. Aber bei bestimmten Dateien hängt meine Anwendung beim Versuch, den Prozess zu öffnen. Heres mein Code: Für den Start des Prozesses verwende ich ziemlich viel den gleichen Code, den ein anderer Kerl in C gemacht hat. Und sein Code funktioniert perfekt. Ich hoffe dein Tag war besser als gestern, aber das ist schlimmer als morgen. Bitte als Antwort markieren, wenn ich dein Problem gelöst habe. ) Bearbeitet von Visual Vincent Samstag, Januar 03, 2015 2:57 PM Hast du die FileNames und Argumente von denen verglichen, die arbeiten und diejenigen, die es gibt keinen Unterschied in ihnen wie die, die Arbeit nicht enthalten Leerzeichen in der FileName Oder Argumente und diejenigen, die Arbeit tun, enthalten keine Leerzeichen in ihnen Wenn Sie feststellen, dass das Problem sein, dann müssen Sie Zitate zum Anfang und Ende des FileName oder Argumente hinzufügen. Meine erste Vermutung ist die Argumente braucht die Zitate so, weil ich Leerzeichen in deinem Beispiel der Argumente sehe. PsArguments Chr (34) amp SavePath amp Chr (34) Wenn Sie sagen, es kann nicht getan werden, dann krank versuchen es Edited by IronRazerz Samstag, 3. Januar 2015 3:51 PM Als Antwort von Visual Vincent Samstag, 03. Januar 2015 markiert 4:33 PM Am Samstag, Januar 03, 2015 3:41 PM Alle Antworten Hast du die FileNames und Argumente von denen verglichen, die funktionieren und diejenigen, die es gibt keinen Unterschied in ihnen wie die, die Arbeit nicht enthalten Leerzeichen in der FileName oder Argumente und diejenigen, die arbeiten, enthalten keine Leerzeichen in ihnen Wenn Sie das Problem finden, dann müssen Sie Quotes zum Anfang und Ende des FileName oder Arguments hinzufügen. Meine erste Vermutung ist die Argumente braucht die Zitate so, weil ich Leerzeichen in deinem Beispiel der Argumente sehe. PsArguments Chr (34) amp SavePath amp Chr (34) Wenn Sie sagen, es kann nicht getan werden, dann krank versuchen es Edited by IronRazerz Samstag, 3. Januar 2015 3:51 PM Als Antwort von Visual Vincent Samstag, 03. Januar 2015 markiert 4:33 PM Samstag, Januar 03, 2015 3:41 PM Hast du den gleichen Befehl manuell in einem Konsolenfenster probiert. Vielleicht hört es auf und wartet auf etwas. Oder setze kein CreateNoWindow ein. ErrorDialog und WIndowStyle und sehen, was passiert. Bearbeitet von Viorel MVP Samstag, Januar 03, 2015 4:27 PM Samstag, Januar 03, 2015 4:25 PM Hast du die FileNames und Argumente von denen verglichen, die funktionieren und diejenigen, die es gibt keinen Unterschied in ihnen wie die, die Arbeit enthält keine Leerzeichen in den FileName oder Argumenten und diejenigen, die arbeiten, enthalten keine Leerzeichen in ihnen Wenn Sie das Problem finden, dann müssen Sie Zitate zum Anfang und Ende des FileName oder Arguments hinzufügen. Meine erste Vermutung ist die Argumente braucht die Zitate so, weil ich Leerzeichen in deinem Beispiel der Argumente sehe. PsArguments Chr (34) amp SavePath amp Chr (34) Wenn du sagst, dass es nicht getan werden kann, dann krank es ausprobieren Dies hat es tatsächlich gemacht. Ich hatte vergessen, dass leere Räume es ein neues Argument machen, albern mich. Ich verwende nicht Prozessargumente, die oft. ) Ich hoffe dein Tag war besser als gestern, aber das ist schlimmer als morgen. Bitte als Antwort markieren, wenn ich dein Problem gelöst habe. ) Herausgegeben von Visual Vincent Samstag, 03. Januar 2015 16:33 Uhr

Comments

Popular posts from this blog

Is Binary Options Trading Halal Chinese

No Stop Hedged Grid Forex Handelssystem

Life Of A Forex Trader