J'ai un winform de base, appelant un programme externe (SVN). Je veux afficher la sortie produite par SVN dans une zone de texte dans le formulaire.Actualiser les contrôles de formulaire avec sortie de programme externe
Voici mon code pour appeler ce programme externe:
private void SVNcmd(string args, string workingcopy)
{
textBoxOutput.Text += workingcopy + Environment.NewLine
+ args + Environment.NewLine;
Process p = new Process();
p.StartInfo.WorkingDirectory = workingcopy;
p.StartInfo.FileName = "svn";
p.StartInfo.Arguments = args;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
textBoxOutput.Text += p.StandardOutput.ReadToEnd() + Environment.NewLine;
p.WaitForExit();
}
Il est appelé dans un "foreach". Le problème est que lorsque je lance la commande, je dois attendre que chaque commande soit terminée ... et cela peut prendre un certain temps. Pendant ce temps, le formulaire se fige et rien n'est affiché dans la zone de texte.
Peut-être qu'avec cette méthode les commandes sont lancées en même temps, malgré le WaitForExit? Je ne suis pas sûr, je ne suis pas familier avec ce type de problèmes (je suis plus d'un développeur web).
Que puis-je faire pour afficher la sortie SVN et arrêter le gel du formulaire pendant l'exécution du programme?
Merci
Merci, mais comment faire? – thomasb