Ce code exécute « handbrakecli » (une application de ligne de commande) et place la sortie dans une chaîne:Redirect et Parse dans stdout en temps réel d'un long processus en cours d'exécution dans vb.net
Dim p As Process = New Process
p.StartInfo.FileName = "handbrakecli"
p.StartInfo.Arguments = "-i [source] -o [destination]"
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardOutput = True
p.Start
Dim output As String = p.StandardOutput.ReadToEnd
p.WaitForExit
Le problème est que cette peut prendre jusqu'à 20 minutes pour se terminer pendant lesquelles rien ne sera rapporté à l'utilisateur. Une fois qu'il est terminé, ils verront toutes les sorties de l'application qui comprend les détails de la progression. Pas très utile.
Par conséquent, je suis en train de trouver un exemple qui montre la meilleure façon de:
- Démarrer Une application externe (cachée)
- Surveillez sa sortie périodiquement car il affiche des informations à ce sujet est le progrès (donc je peut extraire ceci et présenter un bon pourcentage de barre à l'utilisateur)
- Déterminez quand l'application externe est finie (ainsi je ne peux pas continuer avec l'exécution de mes propres applications)
- Tuez l'application externe si nécessaire et de détecter quand ceci a arrivé (de sorte que si l'utilisateur clique sur "annuler", je prends les mesures appropriées)
Quelqu'un a-t-il des extraits de code recommandés?
Ceci est à peu près tout, il suffit de lire en morceaux. – NibblyPig