Maison >développement back-end >C++ >Comment puis-je capturer efficacement la sortie standard d'un processus enfant dans .NET ?
Capturer efficacement la sortie standard du processus enfant dans .NET
Récupérer la sortie standard (STDOUT) d'un processus enfant dans .NET peut être délicat. Cet article détaille une solution basée sur l'expérience d'un développeur.
Le développeur a initialement utilisé des rappels basés sur des événements pour capturer le résultat d'une application console lancée en tant que processus enfant. Cette approche a cependant conduit à une impasse, empêchant le OutputDataReceived
événement de se déclencher.
La solution impliquait de passer à une lecture directe depuis le StandardOutput
flux du processus :
<code class="language-csharp">return p.StandardOutput.ReadToEnd();</code>
Cette méthode capture efficacement tous les résultats du processus.
Alternativement, la méthode BeginOutputReadLine()
propose une approche événementielle :
<code class="language-csharp">process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; process.OutputDataReceived += (sender, args) => Console.WriteLine("received output: {0}", args.Data); process.Start(); process.BeginOutputReadLine();</code>
Ces techniques fournissent des méthodes fiables pour capturer STDOUT à partir des applications console, améliorant ainsi l'interaction et la surveillance des processus enfants.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!