Friday 28 April 2017

Waitforexit Process C # Beispiel Methode

Also habe ich kämpfen dieses Thema für eine Weile jetzt und versuchte viele verschiedene Möglichkeiten, um es zu beheben, kann aber nicht. Grundsätzlich waht meine app tut ruft eine Java-Datei, um eine Anwendung auf einem Gerät zu laden. Während seine Beladung es druckt es auf ein richtext-Feld, dann möchte ich auf die nächste Datei verschieben. Das Problem, das ich habe, ist, dass, während die erste Datei geladen wird, versucht die 2. zu laden, welche Fälle Probleme. Ich habe versucht, die Wartezeit für den Ausgang, aber wenn ich das tun, dann werden die Ausgabedaten nicht in das Rich-Textfeld geschrieben. Irgendwelche Ideen versuchte ich, das Warten für Ausgang an vielen verschiedenen Plätzen zu setzen, aber es scheint nicht zu funktionieren. Zwei Methoden unten schreiben Sie die stdout oder Fehler auf die richtext Feld. Alle Ideen wäre toll. Bascally Ich brauche den Prozess zu beenden, so dass dann kann ich weiterhin gedacht, die forloop die nächste Datei laden. Werden Sie jede Art von Fehlermeldung Es scheint mir, wie Ihre Argumente sind - Xmx512M - jar. Fehlt ein Leerzeichen nach der Befehlszeilenoption - jar. Das könnte dazu führen, dass es nur sofort verlassen, weil nicht in der Lage, den Befehl zu verstehen. Außerdem, wie M. Babcock vorgeschlagen, verschieben Sie die loaddPB-Methode aus dem UI-Thread, und stellen Sie sicher, um das Laden Teil in einem Semaphor zu wickeln, so wird nur eine einzelne Datei geladen zu einem Zeitpunkt geladen und die Benutzeroberfläche kann weiterhin tun, was sie benötigt tun. Ndash SPFiredrake Seien Sie gewarnt, dass dies etwas quothackishquot, dass you39re immer noch die UI-Thread, aber you39re manuell pumpen die Ereignisse durch die Message-Warteschlange. Dies ist nicht eine bewährte Praxis, und die meisten Entwickler werden dagegen empfehlen. Die beste Option ist, den Ladecode in einen separaten Thread zu werfen. Ndash SPFiredrake Feb 9 12 at 15: 54Lets lesen, was MSDN sagt: Die WaitForExit () () () Überlast wird verwendet, um den aktuellen Thread zu warten, bis der damit verbundene Prozess beendet wird. Diese Methode weist die Prozesskomponente an, eine unbegrenzte Zeitspanne zu warten, bis der Prozess beendet wird. Dies kann dazu führen, dass eine Anwendung nicht mehr reagiert. Wenn Sie beispielsweise CloseMainWindow für einen Prozess aufrufen, der über eine Benutzeroberfläche verfügt, wird die Anforderung an das Betriebssystem, den zugeordneten Prozess zu beenden, möglicherweise nicht bearbeitet, wenn der Prozess geschrieben wird, um niemals in seine Nachrichtenschleife zu gelangen. Diese Überlastung stellt sicher, dass alle Verarbeitung abgeschlossen ist, einschließlich der Handhabung von asynchronen Ereignissen für die umgeleitete Standardausgabe. Sie sollten diese Überladung nach einem Aufruf der WaitForExit (Int32) - Uberladung verwenden, wenn die Standardausgabe auf asynchrone Ereignisbehandlungsroutinen umgeleitet wurde. Das ist natürlich für. NET. Was macht Sie glauben, dass es nicht für den Hinweis Prozess nicht warten, um zu beenden, was die Anzeichen, dass es Was der Beweis ist Freitag, 20. Februar 2009 08.13 Nicht sicher, ob dies vor kurzem aber wieder in den Tag-Anwendungen auf Fenster geändert hat Handy geschlossen nie wirklich, wenn Sie die X getroffen, sie zu schließen, würden sie nur minimieren und halten im Hintergrund ausgeführt wird (dies war kein Fehler, es war ein Merkmal, da das nächste Mal starten Sie die App es wirklich schnell gestartet werden würde, yah Ich weiß, wahnsinnig, aber wahr), so könnte das sein, warum WaitForExit ist vielleicht seltsam verhalten und warten auf App-Start anstelle von Exit. Aber dann ist es nur Spekulation auf knowlegde der alten Versionen von Windows Mobile basiert. Freitag, den 20. Februar 2009 um 11:03 Uhr Id wie zu stoßen diese Frage auf. Im auf Windows Mobile 6 Standard und Im versuchen, eine Browser-Instanz spawn. Id wie zu warten, bis der Benutzer den Browser schließt. Aber WaitForExit kommt extrem schnell zurück. Hier ist der Code: Prozess p neue Process () p. StartInfo. Arguments quotexample-sitequot p. StartInfo. Verb quotOpenquot p. StartInfo. UseShellExecute falsch p. StartInfo. FileName quotIExplore. exequot p. Start () p. WaitForExit () MessageBox. Show (quotNow der Browser sollte closedquot sein) Was sollte der richtige Weg, um die erwarteten Resuts erhalten werden, wo das Symbol ist. Symbol. AlexB Dienstag, 9. Juni 2009 09:58 Ich sehe das gleiche Problem, aber auf XP. Ich denke, der Beweis kann in jedem Debugger zu sehen ist (wie ich zu sehen bin) oder in einer beliebigen Konsolenanwendung (nicht unbedingt auf Mobil) Mittwoch, 2. September 2009 08.35 Außer, dass Sie nicht dann ein Prozessobjekt erhalten, was Sie können benutzen. Wenn Sie Dim myProc As New Process () myProc Process. Start (quotiexplorequot, quotfinance. yahooqhpsquot Symbol) myProc. WaitForExit () versuchen, gibt es immer noch sofort. Mittwoch, 2. September 2009 20.48 Uhr Problem ist, dass Sie nicht eine neue Instanz von iexplore. exe starten. Sie erstellen lediglich ein neues Fenster zum bestehenden Prozess. Meine Vermutung ist, iexplore. exe startet, sieht eine vorhergehende Instanz und kommuniziert mit der vorherigen Instanz, so dass es das neue Fenster öffnet, und dann diese Instanz, die Sie sofort beendet verlassen. Das Verhalten ist also richtig und zu erwarten. Blog. voidnish Mittwoch, den 2. September 2009 um 20:52 Uhr Microsoft führt eine Online-Umfrage durch, um Ihre Meinung über die Msdn-Website zu verstehen. Wenn Sie sich für eine Teilnahme entscheiden, wird Ihnen die Online-Umfrage präsentiert, wenn Sie die Msdn-Website verlassen. Möchten Sie teilnehmen


No comments:

Post a Comment