Bonjour, je débute en C# et je voudrais dans un logiciel lancer plusieurs instances d'un exécutable qui écrit l'avancement de son exécution sur sa sortie d'erreur.
Voici ce que j'ai fait pour l'instant :
J'aimerais pouvoir en lancer plusieurs et suivre leur état d'avancement simultanément.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Process processus = new Process(); ProcessStartInfo processusStartInfo = new ProcessStartInfo(); processusStartInfo.FileName = commande; processusStartInfo.Arguments = arguments; processusStartInfo.UseShellExecute = false; processusStartInfo.RedirectStandardOutput = false; processusStartInfo.RedirectStandardError = true; processusStartInfo.CreateNoWindow = true; processus.StartInfo = processusStartInfo; // On définit un évènement pour intercepter ce qui est écrit par le processus processus.ErrorDataReceived += new DataReceivedEventHandler(Program.frmPrincipal.updateDownloadStatus); processus.Start(); processus.BeginErrorReadLine(); processus.Close();
J'aimerais associer à chaque processus un objet (qui existe déjà dans mon appli) pour indiquer ce qu'est le processus.
Pour stocker les processus que je lance, je peux les mettre dans une List mais comment associer un objet à chaque processus ?
J'avais aussi pensé à faire un Dictionnary<Processus, Objet> ce qui me permettrait dans mon DataReceivedEventHandler de retrouver facilement l'objet correspondant au processus qui a déclenché l'évènement.
Etant donné que je débute en C#, est-ce que quelqu'un peut m'indiquer quelle est la meilleure solution ?
Partager