Capture de sortie de la console en temps réel dans les applications .NET
Cet exemple montre comment capturer et afficher la sortie d'une application de console dans une application .NET en temps réel.
<code class="language-csharp">using System.Diagnostics; namespace RealtimeConsoleOutput { class Program { static void Main(string[] args) { // Initiate the process for the console application. Process consoleApp = new Process(); // Configure process settings. consoleApp.StartInfo.FileName = "csc.exe"; // Assumes 'csc.exe' is in the system PATH consoleApp.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs"; consoleApp.StartInfo.UseShellExecute = false; consoleApp.StartInfo.RedirectStandardOutput = true; // Begin the process. consoleApp.Start(); // Continuously read and display output. while (!consoleApp.StandardOutput.EndOfStream) { string line = consoleApp.StandardOutput.ReadLine(); if (!string.IsNullOrEmpty(line)) // added null check for robustness Console.WriteLine(line); } // Wait for the console application to finish. consoleApp.WaitForExit(); } } }</code>
Explication détaillée:
ProcessStartInfo.RedirectStandardOutput = true
: Cela redirige la sortie standard de l'application de console vers l'application .NET. while
lit en continu les lignes de consoleApp.StandardOutput
et les affiche en utilisant Console.WriteLine()
. L'ajout d'une vérification nul améliore la robustesse du code. consoleApp.StandardOutput.EndOfStream
: Cela vérifie si toutes les sorties ont été reçues. consoleApp.WaitForExit()
: Cela garantit que l'application .NET attend l'achèvement de l'application de console. Pour une capture de sortie complète, envisagez de rediriger le flux d'erreur standard en utilisant RedirectStandardError = true
.
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!