Ich habe eine Methode, die aufgerufen wird, obwohl ich möchte, dass das Meldungsfeld angezeigt wird, nachdem die Methode abgeschlossen wurde (jetzt wird das Meldungsfeld direkt nach dem Aufruf der Methode angezeigt):
%Vor%StartConvIpod:
%Vor%Verwenden Sie dies am Ende Ihres Codes:
%Vor%Vergessen Sie nicht, seinen Rückgabewert zu überprüfen, um sicherzustellen, dass es tatsächlich erfolgreich war:
%Vor% Sie haben ein paar Optionen. In StartConvIpod
können Sie p.WaitForExit()
nach p.Start();
Das funktioniert, blockiert aber wahrscheinlich den UI-Thread (es scheint, dass Ihre Anwendung eingefroren ist). Stattdessen würde ich Ihre Benutzeroberfläche in einen "Arbeitsstatus" ändern, z. B. die Schaltfläche "Konvertierung starten" deaktivieren und eine Beschriftung auf "Konvertieren" setzen (nur als Beispiel). Dann würde ich mich für das Ereignis p.Exited
anmelden und wenn Ihr Prozess beendet wird. Wenn das Ereignis ausgelöst wird, können Sie der Benutzeroberfläche mitteilen, dass die Konvertierung abgeschlossen ist, und den Beendigungscode des Prozesses überprüfen.
Verwenden Sie das Process.Exited-Ereignis gemäß der MSDN-Dokumentation für das Process Exit-Ereignis und Abfrage für 30 Sekunden, bis das Exited-Ereignis ausgelöst wird und den ExitCode überprüft.
%Vor%