Waitforexit Prozess C #


WaitForExit () ist eine Thread-Blocking-Methode Dies ist genau die Ursache des Problems. Wenn WaitForExit aus dem Forms-Thread aufgerufen wird, wird es verhindert, dass das Formular neu gezeichnet wird. Das Ziehen von etwas vor einem blockierten Fenster hinterlässt eine Spur des gezogenen Fensters. Vorgeschlagen als Antwort von ahmedilyas Moderator Donnerstag, 28. Juli 2011 10:34 Als Antwort markiert von Jackie-Sun Moderator Code would be better and it Wäre auch besser, wenn Sie uns genau sagen können, was Sie zu erreichen versuchen. Die WaitForExit () wartet einfach (blockiert deinen Code für diese Dauer), um einen Vorgang zu beenden, bevor du mit der Ausführung deines Anrufcodes fortfuhrst. C MVP (2007-2010) MS Vendor - MS Der ganze Weg Follower seit 1995 MS Super Evangelist MSDN Foren Moderator Vorgeschlagen als Antwort von ahmedilyas Moderator Donnerstag, 28. Juli 2011 10:33 Mark als Antwort von Jackie-Sun Moderator Montag, August 08, 2011 6:50 AM Donnerstag, 28. Juli 2011 09:57 Alle Antworten Ich denke, das hat keine Beziehung mit waitforexit Funktion. Welche Form du ziehst. Erste Exe-Form oder zweite Exe-Form. Ein kleiner Code wird geschätzt, markiere meinen Beitrag als Antwort, wenn mein Beitrag war nützlich für dich Donnerstag, 28. Juli 2011 um 9:52 Uhr Code wäre besser und es wäre auch besser, wenn Sie uns genau sagen können, was Sie versuchen zu erreichen . Die WaitForExit () wartet einfach (blockiert deinen Code für diese Dauer), um einen Vorgang zu beenden, bevor du mit der Ausführung deines Anrufcodes fortfuhrst. C MVP (2007-2010) MS Vendor - MS Alle Wege Follower seit 1995 MS Super Evangelist MSDN Foren Moderator Als Antwort vorgeschlagen von ahmedilyas Moderator Als Antwort markiert von Jackie-Sun Moderator Montag, August 08, 2011 6:50 AM Ich hatte checked. it hat Problem auf waitforexit () nur. i bemerkt, dass Problem, wenn verschieben zweite Exe-Formular Editiert von RAJ KUMAR. R Donnerstag, Juli 28, 2011 10:09 AM Hallo ihr alle, ich habe eine Antwort auf die Frage, was ich tun soll Um einen Vorgang zu beenden, bevor er mit dem Code fortfährt. Wird es nicht machen Ihr Formular zu verstecken oder zu minimieren, es sei denn, Sie sagen, Ihren Code, dies zu tun, bevor Sie WaitForExit () C MVP (2007-2010) MS Vendor - MS Alle Weg Follower seit 1995 MS Super Evangelist MSDN Foren Moderator Donnerstag, July 28, 2011 10:05 AM Alles ist funktionieren fine. but, wenn ich das Formular zu bewegen, zeigt es mehrere Form. Donnerstag, 28. Juli 2011 10:09 WaitForExit () ist eine Thread-Blocking-Methode Dies ist genau die Ursache des Problems. Wenn WaitForExit aus dem Forms-Thread aufgerufen wird, wird es verhindert, dass das Formular neu gezeichnet wird. Das Ziehen von etwas vor einem blockierten Fenster hinterlässt eine Spur des gezogenen Fensters. Vorgeschlagen als Antwort von ahmedilyas Moderator Donnerstag, 28. Juli 2011 10:34 Uhr Als Antwort von Jackie-Sun Moderator markiert Montag, 8. August 2011 06:50 Uhr Donnerstag, 28. Juli 2011 10:18 Uhr Wenn Sie sagen, dass mehrere Formen - sprichst du über mehrere Instanzen der Formulare oder nur das Drawrendering, wenn es das Drawrendering dann ja ist, wie schon gesagt - es ist, weil es wartet auf den Prozess zu beenden, bevor es weiter geht und ist Threadblocking, so dass Sie sehen, die quotproblemquot Sie Scheinen zu beschreiben. Es gibt kein quotfixquot für dieses, da es nicht ein Fehler oder ein Problem ist, sondern nur, was Sie verwenden und wie Sie es verwenden. Gibt es einen Grund, warum Sie WaitForExit () verwenden. Müssen Sie Ihr Formular zeigen, wenn Sie WaitForExit () verwenden, warum Sie nicht das Formular verstecken oder minimieren, bevor Sie WaitForExit () aufrufen und dann es nachher wiederherstellen C MVP (2007-2010) MS Vendor - MS Alle Weg Follower seit 1995 MS Microsoft führt eine Online-Umfrage durch, um Ihre Meinung über die Msdn-Website zu verstehen. Wenn Sie sich für die Teilnahme entscheiden, wird Ihnen die Online-Umfrage präsentiert, wenn Sie die Msdn-Website verlassen. Möchten Sie teilnehmen Helfen Sie uns, MSDN zu verbessern. Besuchen Sie unsere UserVoice-Seite, um sich einzuladen und zu bewerten. Dev-Center LernressourcenHow permanent ist WaitForExit (). Ich meine, es gibt irgendetwas eine Alternative, die man tun kann, um das Warten zu brechen, sonst werde ich meinen Thread in einer separaten Funktion ausführen und es durch globale Variablen steuern. Grund - ein CMD. EXE-Thread, mit einer Konsolen-Anwendung läuft, die wir vor dem Faden, der seinen Kurs läuft, abbrechen muss. Hier ist was wir haben: ProcessStartInfo psi new ProcessStartInfo (quotCMD. EXEquot, query) psi. UseShellExecute useShellExec psi. RedirectStandardOutput stdout psi. CreateNoWindow noWindow hbProc new Process () hbProc Process. Start (psi) hbProc. WaitForExit () Nun, könnte man Verwenden Sie: while (hbProc. WaitForExit (someTimeout)) if (ShouldCancel) brechen am Sep 19, 5:15 am, quotMarc Gravellquot ltmarc. grav. Gt schrieb: gt Nun könnten Sie: gt gt while (hbProc. WaitForExit (someTimeout)) gt if (ShouldCancel) brechen gt gt gt gt Marc (beachten Sie, es gibt keinen Grund, den neuen Prozess () und den Prozess aufzurufen. Start (psi) Oder du könntest: hbProc new process () hbProc. EnableRaisingEvents true hbProc. Exited new EventHandler (functionToCallAfterProcesit) hbProc. StartInfo psi hbProc. Start () andere Thread - on will das Ereignis abbrechen: hbProc - new EventHandler ( FunctionToCallAfterProcesit) In jedem Fall ist nur bewusst sein, die potenzielle Race-Bedingung zwischen dem Prozess verlassen und der Wunsch, das Warten abzubrechen. Am 19. September, 4:11 Uhr, Alistair George ltnon xtra. co. nzgt schrieb: gt Wie dauerhaft ist WaitForExit () Ich meine, es gibt alles was gt Alternative kann man tun, um das Warten zu brechen, sonst werde ich meinen Thread gt in einer separaten Funktion laufen und kontrolliere es durch globale Variablen. Gt Reason - ein CMD. EXE Thread mit einer Konsole Anwendung laufen, die wir gt müssen, um vor dem Faden, der seinen Kurs läuft, zu stornieren. Gt Hier ist was wir haben: gt ProcessStartInfo psi new gt ProcessStartInfo (quotCMD. EXEquot, Abfrage) gt psi. UseShellExecute useShellExec gt psi. RedirectStandardOutput stdout gt psi. CreateNoWindow noWindow gt hbProc new Process () gt hbProc Process. Start (psi) gt HbProc. WaitForExit () gt gt Danke, gt Alistair. Sie können entweder den Thread mit WaitForExit () töten oder die Überladung verwenden, mit der Sie ein Timeout bool WaitForExit (int msToWait) angeben können. Wenn du es in einem separaten Thread betreibst und es töten wirst du eine unterbrochene Ausnahme bekommen. Vielleicht möchten Sie sicherstellen, dass der Prozess, den Sie begonnen haben, nicht noch läuft (wenn es ist, töte es). Gt Du kannst entweder den Thread mit WaitForExit () töten oder die gt-Überladung verwenden, mit der du einen Timeout bool WaitForExit (int gt msToWait) angeben kannst. Wenn Sie es in einem separaten Thread laufen und es töten, werden Sie eine unterbrochene Ausnahme bekommen. Vielleicht möchten Sie sicherstellen, dass der gt-Prozess, den Sie begonnen haben, nicht noch läuft (wenn es ist, töte es). Gt Danke Jungs mit den Vorschlägen, die nützlich sind. Wird raten, welche Option am besten funktioniert Al Copyright Kopie 2005-2016, TechTalkz. Alle Rechte vorbehalten.

Comments

Popular Posts